UIAbility是包含UI界面的应用组件,继承自Ability,提供组件创建、销毁、前后台切换等生命周期回调,同时也具备组件协同的能力,组件协同主要提供如下常用功能:

  • Caller:由startAbilityByCall接口返回,CallerAbility(调用者)可使用Caller与CalleeAbility(被调用者)进行通信。
  • Callee:UIAbility的内部对象,CalleeAbility(被调用者)可以通过Callee与Caller进行通信。

API接口说明

RNAbility

基本介绍

RNAbility 继承 ArkUI 的UIAbility,封装了启动 RN 的必要操作,如不同生命周期状态的处理、订阅系统环境变量的变化等,应用程序开发人员应该扩展这个类,使用方法可参考如下代码:

import {RNAbility} from '@rnoh/react-native-openharmony';

export default class EntryAbility extends RNAbility {
  getPagePath() {
    return 'pages/Index';
  }
}

在这里插入图片描述

方法

createLogger
protected createLogger(): RNOHLogger
onPrepareRNInstance
protected async onPrepareRNInstance(rnohCoreContext: RNOHCoreContext): void

如果要在 Ability 中创建 RNInstance 和加载包,可重写此方法。RNAbility 在加载内容之前等待此方法完成。这种方法减少了在隐藏启动屏幕后可能出现的闪烁,并且 RN 应用程序已准备就绪。

参数
参数名 类型 说明
rnohCoreContext RNOHCoreContext
onWindowSetup
protected async onWindowSetup(window: window.Window): void

自定义屏幕方向和窗口大小。

参数
参数名 类型 说明
window window.Window 当前窗口实例当前窗口实例。
onWindowStageSetup
protected async onWindowStageSetup(windowStage: window.WindowStage): void

为当前窗口加载具体页面内容,如果要自定义加载行为可重写该方法。

参数
参数名 类型 说明
windowStage window.WindowStage 当前窗口实例当前窗口实例。
getPagePath
protected abstract getPagePath(): string

获取入口页面路径,该路径是 main_pages.json 中定义的路径。扩展类必须实现该方法。

defaultBackPressHandler
protected defaultBackPressHandler(): void

当 React 应用程序不处理设备返回事件时调用该方法。

onCreate
onCreate(want: Want): void

Create 状态为在应用加载过程中,UIAbility 实例创建完成时触发,系统会调用onCreate()回调。可以在该回调中进行页面初始化操作,例如变量定义资源加载等,用于后续的 UI 展示。

此处实现为创建 RNInstancesCoordinatorRNOHCoreContext 实例,并通过调用AppStorage.setOrCreate()RNOHCoreContext 存储到应用全局。

参数
参数名 类型 说明
want Want 用于在应用组件之间传递信息。

在这里插入图片描述

onCreateDefaultHttpClient
protected onCreateDefaultHttpClient(): undefined | HttpClient

返回 RNInstances 共享的 HttpClient。

onDestroy
onDestroy(): void

Destroy 状态在 UIAbility 实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。

这里最终会调用所有已注册 RNInstanceonDestroy 方法,统一销毁。

onWindowStageCreate
onWindowStageCreate(windowStage: window.WindowStage): void

UIAbility 实例创建完成之后,在进入 Foreground 之前,系统会创建一个 WindowStage。WindowStage 创建完成后会进入onWindowStageCreate()回调,可以在该回调中设置 UI 加载、设置 WindowStage 的事件订阅。

参数
参数名 类型 说明
windowStage window.WindowStage 当前窗口实例当前窗口实例。
onMemoryLevel
onMemoryLevel(level: AbilityConstant.MemoryLevel): void

onMemoryLevel是系统底层AbilityStage的能力,当系统调整内存时触发的事件。

参数
参数名 类型 说明
level AbilityConstant.MemoryLevel 回调返回内存微调级别,显示当前内存使用状态。
onConfigurationUpdate
onConfigurationUpdate(config: AbilityConfiguration.Configuration): void

onConfigurationUpdate是系统底层AbilityStage的能力,环境变化通知接口,发生全局配置发生改变时回调。

参数
参数名 类型 说明
config AbilityConfiguration.Configuration 发生全局配置变更时触发回调,当前全局配置包括系统语言、深浅色模式。
onForeground
onForeground(): void

onForegroundUIAbility 实例切换至前台时触发。

此处会将 RNInstancesCoordinator 中的 appState 变量设置为 “FOREGROUND”。

onBackground
onBackground(): void

onBackgroundUIAbility 实例切换至后台时触发。

此处会将 RNInstancesCoordinator 中的 appState 变量设置为 “BACKGROUND”。

RNAbility 大部分代码由 RNOH 实现,以提高稳定性。如果需要更自由的实现方式,可以使用 RNInstancesCoordinator,本节主要介绍了 RNAbility 的接口类型。

在这里插入图片描述

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐