写点什么

OpenHarmony 中 Ability 组件基本用法

作者:坚果
  • 2023-06-21
    北京
  • 本文字数:1076 字

    阅读完需:约 4 分钟

OpenHarmony中Ability组件基本用法

Ability 组件基本用法

Ability 组件的基本用法包括:指定 Ability 的启动页面、获取 Ability 的上下文 AbilityContext。

Stage 模型下指定 Ability 的启动页面

应用中的 Ability 在启动过程中,需要指定启动页面,否则应用启动后会因为没有默认加载页面而导致白屏。可以在 Ability 的 onWindowStageCreate()生命周期回调中,通过 WindowStage 对象的 loadContent()方法设置启动页面。需要注意的是在 DevEco Studio 中创建的 Ability 中,该 Ability 实例默认会加载 Index 页面,根据需要将 Index 页面路径替换为需要的页面路径即可。


import Ability from '@ohos.application.Ability';import Window from '@ohos.window';
export default class EntryAbility extends Ability { onWindowStageCreate(windowStage: Window.WindowStage) { // zhe'er windowStage.loadContent('pages/Index', (err, data) => { // ... }); }
// ...}
复制代码

获取 Ability 的上下文信息

Ability 类拥有自身的上下文信息,该信息为 AbilityContext 类的实例,AbilityContext 类拥有 abilityInfo、currentHapModuleInfo 等属性。通过 AbilityContext 可以获取 Ability 的相关配置信息,如包代码路径、Bundle 名称、Ability 名称和应用程序需要的环境状态等属性信息,以及可以获取操作 Ability 实例的方法(如 startAbility()、connectAbility()、terminateSelf()等)。


  • 在 Ability 中可以通过 this.context 获取 Ability 实例的上下文信息。


  import Ability from '@ohos.application.Ability';    export default class EntryAbility extends Ability {      onCreate(want, launchParam) {          // 获取Ability实例的上下文          let context = this.context;            // ...      }  }
复制代码


  • 在页面中获取 Ability 实例的上下文信息,包括导入依赖资源 context 模块和定义一个 context 变量两个部分。


  import common from '@ohos.application.context';    @Entry  @Component  struct Index {    private context = getContext(this) as common.AbilityContext;      // 页面展示    build() {      // ...    }  }
复制代码


退出 app


existApp() {    let context = getContext(this) as common.UIAbilityContext;    context.terminateSelf((error) => {      if (error.code) {        // 处理业务逻辑错误        console.error('terminateSelf failed, error.code: ${error.code}, error.message: ${error.message}');        return;      }      // 执行正常业务      console.log('terminateSelf succeed');    });
复制代码


发布于: 刚刚阅读数: 3
用户头像

坚果

关注

此间若无火炬,我便是唯一的光 2020-10-25 加入

公众号:“大前端之旅”,OpenHarmony布道师,润和软件鸿蒙KOL,InfoQ签约作者,电子发烧友鸿蒙KOL

评论

发布
暂无评论
OpenHarmony中Ability组件基本用法_6月优质更文活动_坚果_InfoQ写作社区