• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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![Targetapp_PhotoEditorExtensionAbility](figures/photo-editor-demo.png)
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  ```