1# @ohos.app.ability.UIExtensionAbility (带界面扩展能力基类) 2 3UIExtensionAbility是特定场景下带界面扩展能力的基类,继承自[ExtensionAbility](js-apis-app-ability-extensionAbility.md),新增带界面扩展能力相关的属性和方法。不支持开发者直接继承该基类。各类Ability的继承关系详见[继承关系说明](./js-apis-app-ability-ability.md#ability的继承关系说明)。 4 5> **说明:** 6> 7> 本模块首批接口从API version 10 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 9> 本模块接口仅可在Stage模型下使用。 10 11## 导入模块 12 13```ts 14import { UIExtensionAbility } from '@kit.AbilityKit'; 15``` 16 17## 属性 18 19**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 20 21| 名称 | 类型 | 只读 | 可选 | 说明 | 22| -------- | -------- | -------- | -------- | -------- | 23| context | [UIExtensionContext](js-apis-inner-application-uiExtensionContext.md) | 否 | 否 | UIExtensionAbility的上下文。 | 24 25## UIExtensionAbility.onCreate 26 27onCreate(launchParam: AbilityConstant.LaunchParam): void 28 29UIExtensionAbility创建时回调,执行初始化业务逻辑操作。 30 31**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 32 33| 参数名 | 类型 | 必填 | 说明 | 34| -------- | -------- | -------- | -------- | 35| launchParam<sup>12+</sup> | [AbilityConstant.LaunchParam](js-apis-app-ability-abilityConstant.md#launchparam) | 是| 创建UIExtensionAbility、上次异常退出的原因信息。| 36 37**示例:** 38 39```ts 40import { UIExtensionAbility, AbilityConstant } from '@kit.AbilityKit'; 41 42const TAG: string = '[testTag] UIExtAbility'; 43 44export default class UIExtAbility extends UIExtensionAbility { 45 onCreate(launchParam: AbilityConstant.LaunchParam) { 46 console.info(TAG, `onCreate`); 47 console.log(`onCreate, launchParam: ${JSON.stringify(launchParam)}`); 48 } 49} 50``` 51 52## UIExtensionAbility.onSessionCreate 53 54onSessionCreate(want: Want, session: UIExtensionContentSession): void 55 56当UIExtensionAbility界面内容对象创建后调用。 57 58**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 59 60**参数:** 61 62| 参数名 | 类型 | 必填 | 说明 | 63| -------- | -------- | -------- | -------- | 64| want | [Want](js-apis-app-ability-want.md) | 是 | 当前UIExtensionAbility的Want类型信息,包括ability名称、bundle名称等。 | 65| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md) | 是 | UIExtensionAbility界面内容相关信息。 | 66 67**示例:** 68 69```ts 70import { UIExtensionAbility, UIExtensionContentSession, Want } from '@kit.AbilityKit'; 71 72const TAG: string = '[testTag] UIExtAbility'; 73 74export default class UIExtAbility extends UIExtensionAbility { 75 onSessionCreate(want: Want, session: UIExtensionContentSession) { 76 console.info(TAG, `onSessionCreate, want: ${JSON.stringify(want)}`); 77 } 78} 79``` 80 81## UIExtensionAbility.onSessionDestroy 82 83onSessionDestroy(session: UIExtensionContentSession): void 84 85当UIExtensionAbility界面内容对象销毁后调用。 86 87**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 88 89**参数:** 90 91| 参数名 | 类型 | 必填 | 说明 | 92| -------- | -------- | -------- | -------- | 93| session | [UIExtensionContentSession](js-apis-app-ability-uiExtensionContentSession.md) | 是 | UIExtensionAbility界面内容相关信息。 | 94 95**示例:** 96 97```ts 98import { UIExtensionAbility, UIExtensionContentSession } from '@kit.AbilityKit'; 99 100const TAG: string = '[testTag] UIExtAbility'; 101 102export default class UIExtAbility extends UIExtensionAbility { 103 onSessionDestroy(session: UIExtensionContentSession) { 104 console.info(TAG, `onSessionDestroy`); 105 } 106} 107``` 108 109## UIExtensionAbility.onForeground 110 111onForeground(): void 112 113UIExtensionAbility生命周期回调,当UIExtensionAbility从后台转到前台时触发。 114 115**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 116 117**示例:** 118 119```ts 120import { UIExtensionAbility } from '@kit.AbilityKit'; 121 122const TAG: string = '[testTag] UIExtAbility'; 123 124export default class UIExtAbility extends UIExtensionAbility { 125 onForeground() { 126 console.info(TAG, `onForeground`); 127 } 128} 129``` 130 131## UIExtensionAbility.onBackground 132 133onBackground(): void 134 135UIExtensionAbility生命周期回调,当UIExtensionAbility从前台转到后台时触发。 136 137**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 138 139**示例:** 140 141```ts 142import { UIExtensionAbility } from '@kit.AbilityKit'; 143 144const TAG: string = '[testTag] UIExtAbility'; 145 146export default class UIExtAbility extends UIExtensionAbility { 147 onBackground() { 148 console.info(TAG, `onBackground`); 149 } 150} 151``` 152 153## UIExtensionAbility.onDestroy 154 155onDestroy(): void | Promise<void> 156 157**返回值:** 158 159| 类型 | 说明 | 160| ----------------- | ------------------------------------------------------------ | 161| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 162 163UIExtensionAbility生命周期回调,在销毁时回调,执行资源清理等操作。 164在执行完onDestroy生命周期回调后,应用可能会退出,从而可能导致onDestroy中的异步函数未能正确执行,比如异步写入数据库。可以使用异步生命周期,以确保异步onDestroy完成后再继续后续的生命周期。 165 166**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 167 168**示例:** 169 170```ts 171import { UIExtensionAbility } from '@kit.AbilityKit'; 172 173const TAG: string = '[testTag] UIExtAbility'; 174 175export default class UIExtAbility extends UIExtensionAbility { 176 onDestroy() { 177 console.info(TAG, `onDestroy`); 178 } 179} 180``` 181