@ohos.app.ability.PhotoEditorExtensionAbility (支持图片编辑能力的ExtensionAbility组件)
PhotoEditorExtensionAbility继承自ExtensionAbility,开发者可通过PhotoEditorExtensionAbility实现图片编辑扩展页面。应用通过startAbilityByType拉起图片编辑类应用扩展面板后,由用户在面板上选择实现了PhotoEditorExtensionAbility的图片编辑扩展页面并拉起该页面。
说明:
本模块首批接口从API version 12 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在Stage模型下使用。
实现效果
下图为通过PhotoEditorExtensionAbility实现的图片编辑扩展页面示意图,页面的布局与功能可以根据实际需要开发。

导入模块
import { PhotoEditorExtensionAbility } from '@kit.AbilityKit';
PhotoEditorExtensionAbility
属性
系统能力: SystemCapability.Ability.AppExtension.PhotoEditorExtension
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| context | PhotoEditorExtensionContext | 否 | 否 | PhotoEditorExtensionAbility的上下文,提供保存图片能力。 |
onCreate
onCreate(): void
当PhotoEditorExtensionAbility创建时,系统会触发该回调,开发者可以在该回调内执行初始化业务逻辑操作。
模型约束: 此接口仅可在Stage模型下使用。
系统能力: SystemCapability.Ability.AppExtension.PhotoEditorExtension
示例:
import { PhotoEditorExtensionAbility } from '@kit.AbilityKit';
const TAG: string = '[testTag] ExamplePhotoEditorAbility';
export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility {
onCreate() {
console.info(TAG, `onCreate`);
}
}
onStartContentEditing
onStartContentEditing(uri: string, want: Want, session: UIExtensionContentSession): void
当实现PhotoEditorExtensionAbility的图片编辑扩展界面内容对象创建时,系统会触发该回调,开发者可以在该回调内执行读取原始图片、加载页面等操作。
模型约束: 此接口仅可在Stage模型下使用。
系统能力: SystemCapability.Ability.AppExtension.PhotoEditorExtension
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| uri | string | 是 | 待编辑的原始图片uri,格式为file://<bundleName>/<sandboxPath>。 |
| want | Want | 是 | 当前PhotoEditorExtensionAbility的Want类型信息,包括ability名称、bundle名称等。 |
| session | UIExtensionContentSession | 是 | PhotoEditorExtensionAbility界面内容相关信息。 |
示例:
import { PhotoEditorExtensionAbility, Want, UIExtensionContentSession } from '@kit.AbilityKit';
const TAG: string = '[testTag] ExamplePhotoEditorAbility';
export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility {
onStartContentEditing(uri: string, want: Want, session: UIExtensionContentSession) {
console.info(TAG, `onStartContentEditing want: ${JSON.stringify(want)}, uri: ${uri}`);
}
}
onForeground
onForeground(): void
当PhotoEditorExtensionAbility从后台转到前台时,系统会触发该回调。
模型约束: 此接口仅可在Stage模型下使用。
系统能力: SystemCapability.Ability.AbilityRuntime.AbilityCore
示例:
import { PhotoEditorExtensionAbility } from '@kit.AbilityKit';
const TAG: string = '[testTag] ExamplePhotoEditorAbility';
export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility {
onForeground() {
console.info(TAG, `onForeground`);
}
}
onBackground
onBackground(): void
当PhotoEditorExtensionAbility从前台转到后台时,系统会触发该回调。
模型约束: 此接口仅可在Stage模型下使用。
系统能力: SystemCapability.Ability.AbilityRuntime.AbilityCore
示例:
import { PhotoEditorExtensionAbility } from '@kit.AbilityKit';
const TAG: string = '[testTag] ExamplePhotoEditorAbility';
export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility {
onBackground() {
console.info(TAG, `onBackground`);
}
}
onDestroy
onDestroy(): void | Promise<void>
当PhotoEditorExtensionAbility被销毁时,系统会触发该回调。开发者可以在该生命周期中执行资源清理等相关操作。使用同步回调或Promise异步回调。
模型约束: 此接口仅可在Stage模型下使用。
系统能力: SystemCapability.Ability.AppExtension.PhotoEditorExtension
返回值:
| 类型 | 说明 |
|---|---|
| void | Promise<void> | 无返回结果或者无返回结果的Promise对象。 |
示例:
-
同步回调示例如下:
import { PhotoEditorExtensionAbility } from '@kit.AbilityKit'; const TAG: string = '[testTag] ExamplePhotoEditorAbility'; export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility { onDestroy() { console.info(TAG, `onDestroy`); // 调用同步函数... } } -
Promise异步回调示例如下:
import { PhotoEditorExtensionAbility } from '@kit.AbilityKit'; const TAG: string = '[testTag] ExamplePhotoEditorAbility'; export default class ExamplePhotoEditorAbility extends PhotoEditorExtensionAbility { async onDestroy() { console.info(TAG, `onDestroy`); // 调用异步函数... } }