1# @ohos.app.ability.PhotoEditorExtensionAbility (支持图片编辑能力的ExtensionAbility组件) 2 3<!--Kit: Ability Kit--> 4<!--Subsystem: Ability--> 5<!--Owner: @liusu23--> 6<!--Designer: @xukeke--> 7<!--Tester: @lusq--> 8<!--Adviser: @huipeizi--> 9 10PhotoEditorExtensionAbility继承自[ExtensionAbility](js-apis-app-ability-extensionAbility.md),开发者可通过PhotoEditorExtensionAbility实现图片编辑扩展页面。应用通过[startAbilityByType](js-apis-inner-application-uiAbilityContext.md#startability)拉起图片编辑类应用扩展面板后,由用户在面板上选择实现了PhotoEditorExtensionAbility的图片编辑扩展页面并拉起该页面。 11 12> **说明:** 13> 14> 本模块首批接口从API version 12 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 15> 16> 本模块接口仅可在Stage模型下使用。 17 18## 实现效果 19 20下图为通过PhotoEditorExtensionAbility实现的图片编辑扩展页面示意图,页面的布局与功能可以根据实际需要开发。 21 22 23 24## 导入模块 25 26```ts 27import { PhotoEditorExtensionAbility } from '@kit.AbilityKit'; 28``` 29 30## PhotoEditorExtensionAbility 31 32### 属性 33 34**系统能力:** SystemCapability.Ability.AppExtension.PhotoEditorExtension 35 36| 名称 |类型 |只读 |可选 |说明 | 37| ------------ | ------------ | ------------ | ------------ | ------------ | 38| context | [PhotoEditorExtensionContext](./js-apis-app-ability-photoEditorExtensionContext.md) | 否 | 否 | PhotoEditorExtensionAbility的上下文,提供保存图片能力。 | 39 40### onCreate 41 42onCreate(): void 43 44当PhotoEditorExtensionAbility创建时,系统会触发该回调,开发者可以在该回调内执行初始化业务逻辑操作。 45 46**模型约束:** 此接口仅可在Stage模型下使用。 47 48**系统能力:** SystemCapability.Ability.AppExtension.PhotoEditorExtension 49 50**示例:** 51 52```ts 53import { PhotoEditorExtensionAbility } from '@kit.AbilityKit'; 54 55const TAG: string = '[testTag] ExamplePhotoEditorAbility'; 56 57export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility { 58 onCreate() { 59 console.info(TAG, `onCreate`); 60 } 61} 62 63``` 64 65### onStartContentEditing 66 67onStartContentEditing(uri: string, want: Want, session: UIExtensionContentSession): void 68 69当实现PhotoEditorExtensionAbility的图片编辑扩展界面内容对象创建时,系统会触发该回调,开发者可以在该回调内执行读取原始图片、加载页面等操作。 70 71**模型约束:** 此接口仅可在Stage模型下使用。 72 73**系统能力:** SystemCapability.Ability.AppExtension.PhotoEditorExtension 74 75**参数:** 76| 参数名 | 类型 | 必填 | 说明 | 77| ------------ | ------------ | ------------ | ------------ | 78| uri | string | 是 | 待编辑的原始图片[uri](../apis-core-file-kit/js-apis-file-fileuri.md),格式为file://\<bundleName>/\<sandboxPath>。 | 79| want | [Want](./js-apis-app-ability-want.md) | 是 | 当前PhotoEditorExtensionAbility的Want类型信息,包括ability名称、bundle名称等。 | 80| session | [UIExtensionContentSession](./js-apis-app-ability-uiExtensionContentSession.md) | 是 | PhotoEditorExtensionAbility界面内容相关信息。 | 81 82 83**示例:** 84 85```ts 86import { PhotoEditorExtensionAbility, Want, UIExtensionContentSession } from '@kit.AbilityKit'; 87 88const TAG: string = '[testTag] ExamplePhotoEditorAbility'; 89 90export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility { 91 onStartContentEditing(uri: string, want: Want, session: UIExtensionContentSession) { 92 console.info(TAG, `onStartContentEditing want: ${JSON.stringify(want)}, uri: ${uri}`); 93 } 94} 95 96``` 97 98### onForeground 99 100onForeground(): void 101 102当PhotoEditorExtensionAbility从后台转到前台时,系统会触发该回调。 103 104**模型约束:** 此接口仅可在Stage模型下使用。 105 106**系统能力:** SystemCapability.Ability.AbilityRuntime.AbilityCore 107 108**示例:** 109 110```ts 111import { PhotoEditorExtensionAbility } from '@kit.AbilityKit'; 112 113const TAG: string = '[testTag] ExamplePhotoEditorAbility'; 114 115export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility { 116 onForeground() { 117 console.info(TAG, `onForeground`); 118 } 119} 120 121``` 122 123### onBackground 124 125onBackground(): void 126 127当PhotoEditorExtensionAbility从前台转到后台时,系统会触发该回调。 128 129**模型约束:** 此接口仅可在Stage模型下使用。 130 131**系统能力:** SystemCapability.Ability.AbilityRuntime.AbilityCore 132 133**示例:** 134 135```ts 136import { PhotoEditorExtensionAbility } from '@kit.AbilityKit'; 137 138const TAG: string = '[testTag] ExamplePhotoEditorAbility'; 139 140export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility { 141 onBackground() { 142 console.info(TAG, `onBackground`); 143 } 144} 145 146``` 147 148### onDestroy 149 150onDestroy(): void | Promise\<void> 151 152当PhotoEditorExtensionAbility被销毁时,系统会触发该回调。开发者可以在该生命周期中执行资源清理等相关操作。使用同步回调或Promise异步回调。 153 154**模型约束:** 此接口仅可在Stage模型下使用。 155 156**系统能力:** SystemCapability.Ability.AppExtension.PhotoEditorExtension 157 158**返回值:** 159| 类型 |说明 | 160| ------------ | ------------ | 161| void \| Promise\<void> | 无返回结果或者无返回结果的Promise对象。 | 162 163**示例:** 164 165- 同步回调示例如下: 166 ```ts 167 import { PhotoEditorExtensionAbility } from '@kit.AbilityKit'; 168 169 const TAG: string = '[testTag] ExamplePhotoEditorAbility'; 170 171 export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility { 172 onDestroy() { 173 console.info(TAG, `onDestroy`); 174 // 调用同步函数... 175 } 176 } 177 178 ``` 179- Promise异步回调示例如下: 180 181 ```ts 182 import { PhotoEditorExtensionAbility } from '@kit.AbilityKit'; 183 184 const TAG: string = '[testTag] ExamplePhotoEditorAbility'; 185 186 export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility { 187 async onDestroy() { 188 console.info(TAG, `onDestroy`); 189 // 调用异步函数... 190 } 191 } 192 193 ```