• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# FeatureAbility模块(JS端SDK接口)
2
3#### 支持设备
4
5| API                                                          | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 |
6| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | ------------ |
7| FeatureAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<number>) | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
8| FeatureAbility.startAbility(parameter: StartAbilityParameter) | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
9| FeatureAbility.acquireDataAbilityHelper(uri: string)         | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
10| FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\<AbilityResult>) | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
11| FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter) | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
12| FeatureAbility.terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\<void>) | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
13| FeatureAbility.terminateSelfWithResult(parameter: AbilityResult) | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
14| FeatureAbility.hasWindowFocus(callback: AsyncCallback\<boolean>) | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
15| FeatureAbility.hasWindowFocus()                              | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
16| FeatureAbility.getWant(callback: AsyncCallback\<Want>)       | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
17| FeatureAbility.getWant()                                     | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
18| FeatureAbility.getContext()                                  | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
19| FeatureAbility.terminateSelf(callback: AsyncCallback\<void>) | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
20| FeatureAbility.terminateSelf()                               | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
21
22#### 权限列表
23
24ohos.permission.RUNNING_LOCK permission
25
26#### 使用限制
27
28FeatureAbility模块的接口只能在Page类型的Ability调用
29
30#### 导入模块
31
32```
33import featureAbility from '@ohos.ability.featureAbility'
34```
35
36#### FeatureAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<number>)
37
38* 接口说明
39
40  启动新的ability(callback形式)
41
42* startAbility参数描述
43
44| 名称      | 读写属性 | 类型                  | 必填 | 描述                |
45| --------- | -------- | --------------------- | ---- | ------------------- |
46| parameter | 只读     | StartAbilityParameter | 是   | 表示被启动的Ability |
47| callback  | 只读     | AsyncCallback         | 是   | 被指定的回调方法    |
48
49- StartAbilityParameter类型说明
50
51| 名称                | 读写属性 | 类型   | 必填 | 描述                               |
52| ------------------- | -------- | ------ | ---- | ---------------------------------- |
53| want                | 只读     | want   | 是   | 表示需要包含有关目标启动能力的信息 |
54| abilityStartSetting | 只读     | string | 否   | 指示启动能力中使用的特殊启动设置   |
55
56- want类型说明
57
58| 名称        | 读写属性 | 类型   | 必填 | 描述                       |
59| ----------- | -------- | ------ | ---- | -------------------------- |
60| deviceId    | 只读     | string | 否   | 设备id                     |
61| bundleName  | 只读     | string | 否   | 捆绑包名称                 |
62| abilityName | 只读     | string | 否   | ability 名字               |
63| uri         | 只读     | string | 否   | 请求中URI的描述            |
64| type        | 只读     | string | 否   | 此文件中类型的说明         |
65| flags       | 只读     | number | 否   | 此文件中标志的选项是必需的 |
66| action      | 只读     | string | 否   | 需求中对操作的描述         |
67| parameters  | 只读     | string | 否   | Want中WantParams对象的描述 |
68| entities    | 只读     | string | 否   | 对象中实体的描述           |
69
70* flags类型说明
71
72  | 名称                                 | 参数       | 描述                                                         |
73  | ------------------------------------ | ---------- | ------------------------------------------------------------ |
74  | FLAG_AUTH_READ_URI_PERMISSION        | 0x00000001 | 指示对URI执行读取操作的授权                                  |
75  | FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | 指示对URI执行写入操作的授权                                  |
76  | FLAG_ABILITY_FORWARD_RESULT          | 0x00000004 | 将结果返回给源异能                                           |
77  | FLAG_ABILITY_CONTINUATION            | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备                 |
78  | FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | 指定组件是否不属于OHOS                                       |
79  | FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | 指定是否启动某个能力                                         |
80  | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权                                    |
81  | FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 将结果返回到源能力片                                         |
82  | FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动                             |
83  | FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能   |
84  | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。                                           |
85  | FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能                           |
86  | FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。                 |
87  | FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 |
88  | FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                         |
89  | FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
90
91* 返回值
92
93  void
94
95* 示例
96
97```javascript
98import featureAbility from '@ohos.ability.featureAbility'
99featureAbility.startAbility(
100        {
101        want:
102        {
103            action: "",
104            entities: [""],
105            type: "",
106           	flags: FLAG_AUTH_READ_URI_PERMISSION,
107            deviceId: "",
108            bundleName: "com.example.startability",
109            abilityName: "com.example.startability.MainAbility",
110            uri: ""
111        },
112    },
113  );
114)
115```
116
117
118
119#### FeatureAbility.startAbility(parameter: StartAbilityParameter)
120
121* 接口说明
122
123  启动新的ability(Promise形式)
124
125* startAbility参数描述
126
127| 名称      | 读写属性 | 类型                  | 必填 | 描述                |
128| --------- | -------- | --------------------- | ---- | ------------------- |
129| parameter | 只读     | StartAbilityParameter | 是   | 表示被启动的Ability |
130
131- StartAbilityParameter类型说明
132
133| 名称                | 读写属性 | 类型   | 必填 | 描述                               |
134| ------------------- | -------- | ------ | ---- | ---------------------------------- |
135| want                | 只读     | want   | 是   | 表示需要包含有关目标启动能力的信息 |
136| abilityStartSetting | 只读     | string | 否   | 指示启动能力中使用的特殊启动设置   |
137
138- want类型说明
139
140| 名称        | 读写属性 | 类型   | 必填 | 描述                       |
141| ----------- | -------- | ------ | ---- | -------------------------- |
142| deviceId    | 只读     | string | 否   | 设备id                     |
143| bundleName  | 只读     | string | 否   | 捆绑包名称                 |
144| abilityName | 只读     | string | 否   | ability 名字               |
145| uri         | 只读     | string | 否   | 请求中URI的描述            |
146| type        | 只读     | string | 否   | 此文件中类型的说明         |
147| flags       | 只读     | number | 否   | 此文件中标志的选项是必需的 |
148| action      | 只读     | string | 否   | 需求中对操作的描述         |
149| parameters  | 只读     | string | 否   | Want中WantParams对象的描述 |
150| entities    | 只读     | string | 否   | 对象中实体的描述           |
151
152* flags类型说明
153
154  | 名称                                 | 参数       | 描述                                                         |
155  | ------------------------------------ | ---------- | ------------------------------------------------------------ |
156  | FLAG_AUTH_READ_URI_PERMISSION        | 0x00000001 | 指示对URI执行读取操作的授权                                  |
157  | FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | 指示对URI执行写入操作的授权                                  |
158  | FLAG_ABILITY_FORWARD_RESULT          | 0x00000004 | 将结果返回给源异能                                           |
159  | FLAG_ABILITY_CONTINUATION            | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备                 |
160  | FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | 指定组件是否不属于OHOS                                       |
161  | FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | 指定是否启动某个能力                                         |
162  | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权                                    |
163  | FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 将结果返回到源能力片                                         |
164  | FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动                             |
165  | FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能   |
166  | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。                                           |
167  | FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能                           |
168  | FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。                 |
169  | FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 |
170  | FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                         |
171  | FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
172
173* 返回值
174
175  void
176
177* 示例
178
179```javascript
180import featureAbility from '@ohos.ability.featureAbility'
181featureAbility.startAbility(
182    {
183        want:
184        {
185            action: "action.system.home",
186            entities: ["entity.system.home"],
187            type: "MIMETYPE",
188			flags: FLAG_AUTH_READ_URI_PERMISSION,
189            deviceId: "",
190            bundleName: "com.example.startability",
191            abilityName: "com.example.startability.MainAbility",
192            uri: ""
193        },
194    }
195   ).then((void) => {
196	console.info("==========================>startAbility=======================>");
197});
198```
199
200
201
202#### FeatureAbility.acquireDataAbilityHelper(uri: string)
203
204* 接口说明
205
206  获取dataAbilityHelper
207
208* 参数描述
209
210  | 名称 | 读写属性 | 类型   | 必填 | 描述                   |
211  | ---- | -------- | ------ | ---- | ---------------------- |
212  | uri  | 只读     | string | 是   | 指示要打开的文件的路径 |
213
214* 返回值
215
216  返回dataAbilityHelper
217
218* 示例
219
220```javascript
221import featureAbility from '@ohos.ability.featureAbility'
222featureAbility.acquireDataAbilityHelper(
223    "dataability:///com.exmaple.DataAbility"
224)
225```
226
227
228
229#### FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\<AbilityResult>)
230
231* 接口说明
232
233  启动一个ability,并在该ability被销毁时返回执行结果(callback形式)
234
235* startAbility参数描述
236
237| 名称      | 读写属性 | 类型                   | 必填 | 描述                |
238| --------- | -------- | ---------------------- | ---- | ------------------- |
239| parameter | 只读     | StartAbilityParameter  | 是   | 表示被启动的Ability |
240| callback  | 只读     | AsyncCallback\<number> | 是   | 被指定的回调方法    |
241
242- StartAbilityParameter类型说明
243
244| 名称                | 读写属性 | 类型   | 必填 | 描述                               |
245| ------------------- | -------- | ------ | ---- | ---------------------------------- |
246| want                | 只读     | want   | 是   | 表示需要包含有关目标启动能力的信息 |
247| abilityStartSetting | 只读     | string | 否   | 指示启动能力中使用的特殊启动设置   |
248
249- want类型说明
250
251| 名称        | 读写属性 | 类型   | 必填 | 描述                       |
252| ----------- | -------- | ------ | ---- | -------------------------- |
253| deviceId    | 只读     | string | 否   | 设备id                     |
254| bundleName  | 只读     | string | 否   | 捆绑包名称                 |
255| abilityName | 只读     | string | 否   | ability 名字               |
256| uri         | 只读     | string | 否   | 请求中URI的描述            |
257| type        | 只读     | string | 否   | 此文件中类型的说明         |
258| flags       | 只读     | number | 否   | 此文件中标志的选项是必需的 |
259| action      | 只读     | string | 否   | 需求中对操作的描述         |
260| parameters  | 只读     | string | 否   | Want中WantParams对象的描述 |
261| entities    | 只读     | string | 否   | 对象中实体的描述           |
262
263* flags类型说明
264
265  | 名称                                 | 参数       | 描述                                                         |
266  | ------------------------------------ | ---------- | ------------------------------------------------------------ |
267  | FLAG_AUTH_READ_URI_PERMISSION        | 0x00000001 | 指示对URI执行读取操作的授权                                  |
268  | FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | 指示对URI执行写入操作的授权                                  |
269  | FLAG_ABILITY_FORWARD_RESULT          | 0x00000004 | 将结果返回给源异能                                           |
270  | FLAG_ABILITY_CONTINUATION            | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备                 |
271  | FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | 指定组件是否不属于OHOS                                       |
272  | FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | 指定是否启动某个能力                                         |
273  | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权                                    |
274  | FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 将结果返回到源能力片                                         |
275  | FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动                             |
276  | FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能   |
277  | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。                                           |
278  | FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能                           |
279  | FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。                 |
280  | FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 |
281  | FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                         |
282  | FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
283
284* 返回值
285
286  返回{@link AbilityResult}
287
288* 示例
289
290```javascript
291import featureAbility from '@ohos.ability.featureability';
292featureAbility.startAbilityForResult(
293   {
294        want:
295        {
296            action: "action.system.home",
297            entities: ["entity.system.home"],
298            type: "MIMETYPE",
299            flags: FLAG_AUTH_READ_URI_PERMISSION,
300            deviceId: "",
301            bundleName: "com.example.featureabilitytest",
302            abilityName: "com.example.startabilityforresulttest1.MainAbility",
303            uri:""
304        },
305    },
306)
307```
308
309
310
311#### FeatureAbility.startAbilityForResult(parameter: StartAbilityParameter)
312
313* 接口说明
314
315  启动一个ability,并在该ability被销毁时返回执行结果(Promise形式)
316
317* startAbility参数描述
318
319| 名称      | 读写属性 | 类型                  | 必填 | 描述                |
320| --------- | -------- | --------------------- | ---- | ------------------- |
321| parameter | 只读     | StartAbilityParameter | 是   | 表示被启动的Ability |
322
323- StartAbilityParameter类型说明
324
325| 名称                | 读写属性 | 类型   | 必填 | 描述                               |
326| ------------------- | -------- | ------ | ---- | ---------------------------------- |
327| want                | 只读     | want   | 是   | 表示需要包含有关目标启动能力的信息 |
328| abilityStartSetting | 只读     | string | 否   | 指示启动能力中使用的特殊启动设置   |
329
330- want类型说明
331
332| 名称        | 读写属性 | 类型   | 必填 | 描述                       |
333| ----------- | -------- | ------ | ---- | -------------------------- |
334| deviceId    | 只读     | string | 否   | 设备id                     |
335| bundleName  | 只读     | string | 否   | 捆绑包名称                 |
336| abilityName | 只读     | string | 否   | ability 名字               |
337| uri         | 只读     | string | 否   | 请求中URI的描述            |
338| type        | 只读     | string | 否   | 此文件中类型的说明         |
339| flags       | 只读     | number | 否   | 此文件中标志的选项是必需的 |
340| action      | 只读     | string | 否   | 需求中对操作的描述         |
341| parameters  | 只读     | string | 否   | Want中WantParams对象的描述 |
342| entities    | 只读     | string | 否   | 对象中实体的描述           |
343
344* flags类型说明
345
346  | 名称                                 | 参数       | 描述                                                         |
347  | ------------------------------------ | ---------- | ------------------------------------------------------------ |
348  | FLAG_AUTH_READ_URI_PERMISSION        | 0x00000001 | 指示对URI执行读取操作的授权                                  |
349  | FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | 指示对URI执行写入操作的授权                                  |
350  | FLAG_ABILITY_FORWARD_RESULT          | 0x00000004 | 将结果返回给源异能                                           |
351  | FLAG_ABILITY_CONTINUATION            | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备                 |
352  | FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | 指定组件是否不属于OHOS                                       |
353  | FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | 指定是否启动某个能力                                         |
354  | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权                                    |
355  | FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 将结果返回到源能力片                                         |
356  | FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动                             |
357  | FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能   |
358  | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。                                           |
359  | FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能                           |
360  | FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。                 |
361  | FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 |
362  | FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                         |
363  | FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
364
365* 返回值
366
367  返回{@link AbilityResult}
368
369* 示例
370
371```javascript
372import featureAbility from '@ohos.ability.featureability';
373featureAbility.startAbilityForResult(
374    {
375        want:
376        {
377            action: "action.system.home",
378            entities: ["entity.system.home"],
379            type: "MIMETYPE",
380            flags: FLAG_AUTH_READ_URI_PERMISSION,
381            deviceId: "",
382            bundleName: "com.example.featureabilitytest",
383            abilityName: "com.example.startabilityforresulttest2.MainAbility",
384            uri:"",
385            parameters:
386            {
387                mykey0: 1111,
388                mykey1: [1, 2, 3],
389                mykey2: "[1, 2, 3]",
390                mykey3: "xxxxxxxxxxxxxxxxxxxxxx",
391                mykey4: [1, 15],
392                mykey5: [false, true, false],
393                mykey6: ["aaaaaa", "bbbbb", "ccccccccccc"],
394                mykey7: true,
395            },
396        },
397        requestCode: 2,
398    },
399).then((void) => {
400    console.info("==========================>startAbilityForResult=======================>");
401});
402```
403
404
405
406#### FeatureAbility.terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\<void>)
407
408* 接口说明
409
410  设置此page ability将返回给调用者的结果代码和数据并破坏此page ability(callback形式)
411
412
413* startAbility参数描述
414
415| 名称      | 读写属性 | 类型          | 必填 | 描述                |
416| --------- | -------- | ------------- | ---- | ------------------- |
417| parameter | 只读     | AbilityResult | 是   | 表示被启动的Ability |
418| callback  | 只读     | AsyncCallback | 是   | 被指定的回调方法    |
419
420
421* AbilityResult类型说明
422
423| 名称       | 读写属性 | 类型   | 必填 | 描述                                                         |
424| ---------- | -------- | ------ | ---- | ------------------------------------------------------------ |
425| resultCode | 只读     | number | 是   | 指示销毁该能力后返回的结果代码。您可以定义结果代码来识别错误(暂不支持) |
426| want       | 只读     | Want   | 否   | 指示销毁该能力后返回的数据。您可以定义返回的数据。此参数可以为null。 |
427
428- want类型说明
429
430| 名称        | 读写属性 | 类型   | 必填 | 描述                       |
431| ----------- | -------- | ------ | ---- | -------------------------- |
432| deviceId    | 只读     | string | 否   | 设备id                     |
433| bundleName  | 只读     | string | 否   | 捆绑包名称                 |
434| abilityName | 只读     | string | 否   | ability 名字               |
435| uri         | 只读     | string | 否   | 请求中URI的描述            |
436| type        | 只读     | string | 否   | 此文件中类型的说明         |
437| flags       | 只读     | number | 否   | 此文件中标志的选项是必需的 |
438| action      | 只读     | string | 否   | 需求中对操作的描述         |
439| parameters  | 只读     | string | 否   | Want中WantParams对象的描述 |
440| entities    | 只读     | string | 否   | 对象中实体的描述           |
441
442* flags类型说明
443
444  | 名称                                 | 参数       | 描述                                                         |
445  | ------------------------------------ | ---------- | ------------------------------------------------------------ |
446  | FLAG_AUTH_READ_URI_PERMISSION        | 0x00000001 | 指示对URI执行读取操作的授权                                  |
447  | FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | 指示对URI执行写入操作的授权                                  |
448  | FLAG_ABILITY_FORWARD_RESULT          | 0x00000004 | 将结果返回给源异能                                           |
449  | FLAG_ABILITY_CONTINUATION            | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备                 |
450  | FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | 指定组件是否不属于OHOS                                       |
451  | FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | 指定是否启动某个能力                                         |
452  | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权                                    |
453  | FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 将结果返回到源能力片                                         |
454  | FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动                             |
455  | FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能   |
456  | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。                                           |
457  | FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能                           |
458  | FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。                 |
459  | FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 |
460  | FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                         |
461  | FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
462
463* 返回值
464
465  void
466
467* 示例
468
469```javascript
470import featureAbility from '@ohos.ability.featureAbility'
471featureAbility.terminateSelfWithResult(
472    {
473        resultCode: 1,
474        want:
475        {
476            action: "action.system.home",
477            entities: ["entity.system.home"],
478            type: "MIMETYPE",
479            flags: FLAG_AUTH_READ_URI_PERMISSION,
480            deviceId: "",
481            bundleName: "com.example.featureabilitytest",
482            abilityName: "com.example.finishwithresulttest1.MainAbility",
483            uri:"",
484            parameters: {
485                mykey0: 2222,
486                mykey1: [1, 2, 3],
487                mykey2: "[1, 2, 3]",
488                mykey3: "ssssssssssssssssssssssssss",
489                mykey4: [1, 15],
490                mykey5: [false, true, false],
491                mykey6: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
492                mykey7: true,
493            }
494        },
495    },
496);
497```
498
499
500
501#### FeatureAbility.terminateSelfWithResult(parameter: AbilityResult)
502
503* 接口说明
504
505  设置此page ability将返回给调用者的结果代码和数据并破坏此page ability(Promise形式)
506
507* startAbility参数描述
508
509| 名称      | 读写属性 | 类型          | 必填 | 描述                |
510| --------- | -------- | ------------- | ---- | ------------------- |
511| parameter | 只读     | AbilityResult | 是   | 表示被启动的Ability |
512
513
514* AbilityResult类型说明
515
516| 名称       | 读写属性 | 类型   | 必填 | 描述                                                         |
517| ---------- | -------- | ------ | ---- | ------------------------------------------------------------ |
518| resultCode | 只读     | number | 是   | 指示销毁该能力后返回的结果代码。您可以定义结果代码来识别错误(暂不支持) |
519| want       | 只读     | Want   | 否   | 指示销毁该能力后返回的数据。您可以定义返回的数据。此参数可以为null。 |
520
521- want类型说明
522
523| 名称        | 读写属性 | 类型   | 必填 | 描述                       |
524| ----------- | -------- | ------ | ---- | -------------------------- |
525| deviceId    | 只读     | string | 否   | 设备id                     |
526| bundleName  | 只读     | string | 否   | 捆绑包名称                 |
527| abilityName | 只读     | string | 否   | ability 名字               |
528| uri         | 只读     | string | 否   | 请求中URI的描述            |
529| type        | 只读     | string | 否   | 此文件中类型的说明         |
530| flags       | 只读     | number | 否   | 此文件中标志的选项是必需的 |
531| action      | 只读     | string | 否   | 需求中对操作的描述         |
532| parameters  | 只读     | string | 否   | Want中WantParams对象的描述 |
533| entities    | 只读     | string | 否   | 对象中实体的描述           |
534
535* flags类型说明
536
537  | 名称                                 | 参数       | 描述                                                         |
538  | ------------------------------------ | ---------- | ------------------------------------------------------------ |
539  | FLAG_AUTH_READ_URI_PERMISSION        | 0x00000001 | 指示对URI执行读取操作的授权                                  |
540  | FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | 指示对URI执行写入操作的授权                                  |
541  | FLAG_ABILITY_FORWARD_RESULT          | 0x00000004 | 将结果返回给源异能                                           |
542  | FLAG_ABILITY_CONTINUATION            | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备                 |
543  | FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | 指定组件是否不属于OHOS                                       |
544  | FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | 指定是否启动某个能力                                         |
545  | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权                                    |
546  | FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 将结果返回到源能力片                                         |
547  | FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动                             |
548  | FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能   |
549  | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。                                           |
550  | FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能                           |
551  | FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。                 |
552  | FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 |
553  | FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                         |
554  | FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
555
556* 返回值
557
558  void
559
560* 示例
561
562```javascript
563import featureAbility from '@ohos.ability.featureability';
564featureAbility.terminateSelfWithResult(
565    {
566        resultCode: 1,
567        want:
568        {
569            action: "action.system.home",
570            entities: ["entity.system.home"],
571            type: "MIMETYPE",
572            flags: FLAG_AUTH_READ_URI_PERMISSION,
573            deviceId: "",
574            bundleName: "com.example.featureabilitytest",
575            abilityName: "com.example.finishwithresulttest1.MainAbility",
576            uri:"",
577            parameters: {
578                mykey0: 2222,
579                mykey1: [1, 2, 3],
580                mykey2: "[1, 2, 3]",
581                mykey3: "ssssssssssssssssssssssssss",
582                mykey4: [1, 15],
583                mykey5: [false, true, false],
584                mykey6: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
585                mykey7: true,
586            }
587        },
588    }
589).then((void) => {
590		console.info("==========================>terminateSelfWithResult=======================>");
591});
592```
593
594
595
596#### FeatureAbility.hasWindowFocus(callback: AsyncCallback\<boolean>)
597
598* 接口说明
599
600  检查ability的主窗口是否具有窗口焦点(callback形式)
601
602* 参数描述
603
604| 名称     | 读写属性 | 类型                    | 必填 | 描述             |
605| -------- | -------- | ----------------------- | ---- | ---------------- |
606| callback | 只读     | AsyncCallback\<boolean> | 是   | 被指定的回调方法 |
607
608* 返回值
609
610  如果此异能当前具有视窗焦点,则返回{@code true};否则返回{@code false}
611
612* 示例
613
614```javascript
615import featureAbility from '@ohos.ability.featureability';
616featureAbility.hasWindowFocus()
617```
618
619
620
621#### FeatureAbility.hasWindowFocus()
622
623* 接口说明
624
625  检查ability的主窗口是否具有窗口焦点(Promise形式)
626
627* 参数描述
628
629  Null
630
631* 返回值
632
633  如果此异能当前具有视窗焦点,则返回{@code true};否则返回{@code false}
634
635* 示例
636
637```javascript
638import featureAbility from '@ohos.ability.featureability';
639featureAbility.hasWindowFocus().then((void) => {
640		console.info("==========================>hasWindowFocus=======================>");
641});
642```
643
644
645
646#### FeatureAbility.getWant(callback: AsyncCallback\<Want>)
647
648* 接口说明
649
650  获取从ability发送的want(callback形式)
651
652* 参数描述
653
654| 名称     | 读写属性 | 类型                 | 必填 | 描述             |
655| -------- | -------- | -------------------- | ---- | ---------------- |
656| callback | 只读     | AsyncCallback\<Want> | 是   | 被指定的回调方法 |
657
658* 返回值
659
660  void
661
662* 示例
663
664```javascript
665import featureAbility from '@ohos.ability.featureability';
666featureAbility.getWant()
667```
668
669
670
671#### FeatureAbility.getWant()
672
673* 接口说明
674
675  获取从ability发送的want(Promise形式)
676
677* 参数描述
678
679  Null
680
681* 返回值
682
683  void
684
685* 示例
686
687```javascript
688import featureAbility from '@ohos.ability.featureability';
689featureAbility.getWant().then((void) => {
690		console.info("==========================>getWantCallBack=======================>");
691});
692```
693
694
695
696#### FeatureAbility.getContext()
697
698* 接口说明
699
700  获取应用程序上下文
701
702* 返回值
703
704  返回应用程序上下文
705
706* 示例
707
708```javascript
709import featureAbility from '@ohos.ability.featureability';
710var context = featureAbility.getContext()
711context.getBundleName()
712```
713
714
715
716#### FeatureAbility.terminateSelf(callback: AsyncCallback\<void>)
717
718* 接口说明
719
720  设置page ability返回给被调用方的结果代码和数据,并销毁此page ability(callback形式)
721
722* 参数描述
723
724| 名称     | 读写属性 | 类型                 | 必填 | 描述             |
725| -------- | -------- | -------------------- | ---- | ---------------- |
726| callback | 只读     | AsyncCallback\<void> | 是   | 被指定的回调方法 |
727
728* 返回值
729
730  void
731
732* 示例
733
734```javascript
735import featureAbility from '@ohos.ability.featureability';
736featureAbility.terminateSelf()
737```
738
739
740
741#### FeatureAbility.terminateSelf()
742
743* 接口说明
744
745  设置page ability返回给被调用方的结果代码和数据,并销毁此page ability(Promise形式)
746
747* 参数描述
748
749  Null
750
751* 返回值
752
753* void
754
755* 示例
756
757```javascript
758import featureAbility from '@ohos.ability.featureability';
759featureAbility.terminateSelf().then((void) => {		    console.info("==========================>terminateSelfCallBack=======================>");
760});
761```
762
763#### FeatureAbility.connectAbility(*request*: Want, *options*:ConnectOptions): number
764
765* 接口说明
766
767  将当前ability连接到指定ServiceAbility(callback形式)
768
769* connectAbility参数描述
770
771| 名称    | 读写属性 | 类型           | 必填 | 描述                       |
772| ------- | -------- | -------------- | ---- | -------------------------- |
773| request | 只读     | Want           | 是   | 表示被连接的ServiceAbility |
774| options | 只读     | ConnectOptions | 是   | 被指定的回调方法           |
775
776- ConnectOptions类型说明
777
778| 名称         | 读写属性 | 类型     | 必填 | 描述                               |
779| ------------ | -------- | -------- | ---- | ---------------------------------- |
780| onConnect    | 只读     | function | 是   | 连接成功时的回调函数               |
781| onDisconnect | 只读     | function | 是   | 连接失败时的回调函数               |
782| onFailed     | 只读     | function | 是   | ConnectAbility调用失败时的回调函数 |
783
784* 返回值
785
786  连接的ServiceAbilityID。
787
788* 示例
789
790```javascript
791import featureAbility from '@ohos.ability.featureAbility'
792var mRemote;
793var connId;
794function onConnectCallback(element, remote){
795    mRemote = remote;
796    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
797}
798function onDisconnectCallback(element){
799    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
800}
801function onFailedCallback(code){
802    console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
803}
804var connId = featureAbility.connectAbility(
805    {
806        bundleName: "com.ix.ServiceAbility",
807        abilityName: "ServiceAbilityA",
808    },
809    {
810        onConnect: onConnectCallback,
811        onDisconnect: onDisconnectCallback,
812        onFailed: onFailedCallback,
813    },
814);
815```
816
817#### FeatureAbility.disconnectAbility(connection: number, callback:AsyncCallback<void>): void
818
819* 接口说明
820
821  断开与指定ServiceAbility的连接(callback形式)
822
823* disconnectAbility参数描述
824
825| 名称       | 读写属性 | 类型          | 必填 | 描述                           |
826| ---------- | -------- | ------------- | ---- | ------------------------------ |
827| connection | 只读     | number        | 是   | 指定断开连接的ServiceAbilityID |
828| callback   | 只读     | AsyncCallback | 是   | 被指定的回调方法               |
829
830* 返回值
831
832833
834* 示例
835
836```javascript
837import featureAbility from '@ohos.ability.featureAbility'
838var mRemote;
839var connId;
840function onConnectCallback(element, remote){
841    mRemote = remote;
842    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
843}
844function onDisconnectCallback(element){
845    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
846}
847function onFailedCallback(code){
848    console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
849}
850var connId = featureAbility.connectAbility(
851    {
852        bundleName: "com.ix.ServiceAbility",
853        abilityName: "ServiceAbilityA",
854    },
855    {
856        onConnect: onConnectCallback,
857        onDisconnect: onDisconnectCallback,
858        onFailed: onFailedCallback,
859    },
860);
861var result = featureAbility.disconnectAbility(connId,
862    (error,data) => {
863    console.log('featureAbilityTest DisConnectJsSameBundleName result errCode : ' + error.code + " data: " + data)
864    },
865);
866```
867
868#### FeatureAbility.disconnectAbility(connection: number): Promise<void>;
869
870* 接口说明
871
872  断开与指定ServiceAbility的连接(promise形式)
873
874* disconnectAbility参数描述
875
876| 名称       | 读写属性 | 类型   | 必填 | 描述                           |
877| ---------- | -------- | ------ | ---- | ------------------------------ |
878| connection | 只读     | number | 是   | 指定断开连接的ServiceAbilityID |
879
880* 返回值
881
882883
884* 示例
885
886```javascript
887import featureAbility from '@ohos.ability.featureAbility'
888var mRemote;
889var connId;
890function onConnectCallback(element, remote){
891    mRemote = remote;
892    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
893}
894function onDisconnectCallback(element){
895    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
896}
897function onFailedCallback(code){
898    console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
899}
900var connId = featureAbility.connectAbility(
901    {
902        bundleName: "com.ix.ServiceAbility",
903        abilityName: "ServiceAbilityA",
904    },
905    {
906        onConnect: onConnectCallback,
907        onDisconnect: onDisconnectCallback,
908        onFailed: onFailedCallback,
909    },
910);
911var result = await featureAbility.disconnectAbility(connId);
912```
913
914