js-apis-featureAbility.md 32.7 KB
Newer Older
1
# FeatureAbility模块(JS端SDK接口)
X
xuchenghua09 已提交
2

Y
yuyaozhi 已提交
3 4
FeatureAbility模块提供带有UI设计与用户交互的能力,包括启动新的ability、获取dataAbilityHelper、设置此Page Ability、获取当前Ability对应的窗口,连接服务等。

Y
yuyaozhi 已提交
5 6
> **说明:**
> 
7 8
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。  
> 本模块接口仅可在FA模型下使用。
9

Z
zengyawen 已提交
10
## 使用限制
X
xuchenghua09 已提交
11 12 13

FeatureAbility模块的接口只能在Page类型的Ability调用

Z
zengyawen 已提交
14
## 导入模块
X
xuchenghua09 已提交
15 16 17 18 19

```
import featureAbility from '@ohos.ability.featureAbility'
```

Z
zengyawen 已提交
20
## featureAbility.startAbility
X
xuchenghua09 已提交
21

Z
zengyawen 已提交
22
startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<number>): void
X
xuchenghua09 已提交
23

Z
zengyawen 已提交
24
启动新的ability(callback形式)。
X
xuchenghua09 已提交
25

Y
yuyaozhi 已提交
26
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
27

Z
zengyawen 已提交
28
**参数:**
X
xuchenghua09 已提交
29

H
HelloCrease 已提交
30 31 32 33
| 名称        | 类型                                       | 必填   | 描述             |
| --------- | ---------------------------------------- | ---- | -------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是    | 表示被启动的Ability。 |
| callback  | AsyncCallback\<number>                   | 是    | 被指定的回调方法。      |
X
xuchenghua09 已提交
34

Z
zengyawen 已提交
35
**示例:**
X
xuchenghua09 已提交
36 37 38

```javascript
import featureAbility from '@ohos.ability.featureAbility'
39
import wantConstant from '@ohos.ability.wantConstant'
X
xuchenghua09 已提交
40
featureAbility.startAbility(
41
    {
X
xuchenghua09 已提交
42 43 44 45 46
        want:
        {
            action: "",
            entities: [""],
            type: "",
47
            flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
X
xuchenghua09 已提交
48
            deviceId: "",
G
guyuanzhang 已提交
49 50
            bundleName: "com.example.myapplication",
            /* FA模型中abilityName由package + Ability name组成 */
Y
yuyaozhi 已提交
51
            abilityName: "com.example.entry.secondAbility",
X
xuchenghua09 已提交
52 53 54
            uri: ""
        },
    },
55
);
X
xuchenghua09 已提交
56 57 58 59
```



Z
zengyawen 已提交
60
## featureAbility.startAbility
X
xuchenghua09 已提交
61

Z
zengyawen 已提交
62
startAbility(parameter: StartAbilityParameter): Promise\<number>
X
xuchenghua09 已提交
63

Z
zengyawen 已提交
64
启动新的ability(Promise形式)。
X
xuchenghua09 已提交
65

Y
yuyaozhi 已提交
66
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
67

Z
zengyawen 已提交
68
**参数:**
X
xuchenghua09 已提交
69

H
HelloCrease 已提交
70 71 72
| 名称        | 类型                                       | 必填   | 描述             |
| --------- | ---------------------------------------- | ---- | -------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是    | 表示被启动的Ability。 |
X
xuchenghua09 已提交
73

Z
zengyawen 已提交
74
**示例:**
X
xuchenghua09 已提交
75 76 77

```javascript
import featureAbility from '@ohos.ability.featureAbility'
78
import wantConstant from '@ohos.ability.wantConstant'
X
xuchenghua09 已提交
79 80 81 82
featureAbility.startAbility(
    {
        want:
        {
83
            action: "action.system.home",
X
xuchenghua09 已提交
84 85
            entities: ["entity.system.home"],
            type: "MIMETYPE",
86 87
			flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
            deviceId: "",
G
guyuanzhang 已提交
88 89 90
            bundleName: "com.example.myapplication",
            /* FA模型中abilityName由package + Ability name组成 */
            abilityName: "com.example.entry.secondAbility",
X
xuchenghua09 已提交
91 92 93
            uri: ""
        },
    }
94
).then((data) => {
X
xuchenghua09 已提交
95 96 97 98
	console.info("==========================>startAbility=======================>");
});
```

99
## featureAbility.acquireDataAbilityHelper<sup>7+</sup>
X
xuchenghua09 已提交
100

Z
zengyawen 已提交
101
acquireDataAbilityHelper(uri: string): DataAbilityHelper
X
xuchenghua09 已提交
102

Z
zengyawen 已提交
103
获取dataAbilityHelper。
X
xuchenghua09 已提交
104

Y
yuyaozhi 已提交
105
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
106

Z
zengyawen 已提交
107
**参数:**
X
xuchenghua09 已提交
108

H
HelloCrease 已提交
109 110 111
| 名称   | 类型     | 必填   | 描述           |
| ---- | ------ | ---- | ------------ |
| uri  | string | 是    | 指示要打开的文件的路径。 |
X
xuchenghua09 已提交
112

Z
zengyawen 已提交
113
**返回值:**
X
xuchenghua09 已提交
114

H
HelloCrease 已提交
115 116
| 类型                | 说明                              |
| ----------------- | ------------------------------- |
Z
zengyawen 已提交
117
| DataAbilityHelper | 用来协助其他Ability访问DataAbility的工具类。 |
X
xuchenghua09 已提交
118

Z
zengyawen 已提交
119
**示例:**
X
xuchenghua09 已提交
120 121 122 123

```javascript
import featureAbility from '@ohos.ability.featureAbility'
featureAbility.acquireDataAbilityHelper(
Y
yuyaozhi 已提交
124
    "dataability:///com.example.DataAbility"
X
xuchenghua09 已提交
125 126 127
)
```

128
## featureAbility.startAbilityForResult<sup>7+</sup>
X
xuchenghua09 已提交
129

Z
zengyawen 已提交
130
startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\<AbilityResult>): void
X
xuchenghua09 已提交
131

Z
zengyawen 已提交
132
启动一个ability,并在该ability被销毁时返回执行结果(callback形式)。
X
xuchenghua09 已提交
133

Y
yuyaozhi 已提交
134
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
135

Z
zengyawen 已提交
136
**参数:**
X
xuchenghua09 已提交
137

H
HelloCrease 已提交
138 139 140 141
| 名称        | 类型                                       | 必填   | 描述             |
| --------- | ---------------------------------------- | ---- | -------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是    | 表示被启动的Ability。 |
| callback  | AsyncCallback\<[AbilityResult](#abilityresult)> | 是    | 被指定的回调方法。      |
X
xuchenghua09 已提交
142

Z
zengyawen 已提交
143
**示例:**
X
xuchenghua09 已提交
144 145

```javascript
Y
yuyaozhi 已提交
146
import featureAbility from '@ohos.ability.featureAbility';
147
import wantConstant from '@ohos.ability.wantConstant'
X
xuchenghua09 已提交
148 149 150 151 152 153 154
featureAbility.startAbilityForResult(
   {
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
155
            flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
X
xuchenghua09 已提交
156
            deviceId: "",
G
guyuanzhang 已提交
157 158 159
            bundleName: "com.example.myapplication",
            /* FA模型中abilityName由package + Ability name组成 */
            abilityName: "com.example.entry.secondAbility",
X
xuchenghua09 已提交
160 161 162
            uri:""
        },
    },
163
    (err, data) => {
Y
yuyaozhi 已提交
164
        console.info("err: " + JSON.stringify(err) + "data: " + JSON.stringify(data))
165
    }
X
xuchenghua09 已提交
166 167 168
)
```

169
## featureAbility.startAbilityForResult<sup>7+</sup>
X
xuchenghua09 已提交
170

Z
zengyawen 已提交
171
startAbilityForResult(parameter: StartAbilityParameter): Promise\<AbilityResult>
X
xuchenghua09 已提交
172

Z
zengyawen 已提交
173
启动一个ability,并在该ability被销毁时返回执行结果(Promise形式)。
X
xuchenghua09 已提交
174

Y
yuyaozhi 已提交
175
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
176

Z
zengyawen 已提交
177
**参数:**
X
xuchenghua09 已提交
178

H
HelloCrease 已提交
179 180 181
| 名称        | 类型                                       | 必填   | 描述            |
| --------- | ---------------------------------------- | ---- | ------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是    | 表示被启动的Ability |
X
xuchenghua09 已提交
182

Z
zengyawen 已提交
183
**返回值:**
Y
yuyaozhi 已提交
184

H
HelloCrease 已提交
185 186
| 类型                                       | 说明      |
| ---------------------------------------- | ------- |
Z
zengyawen 已提交
187
| Promise\<[AbilityResult](#abilityresult)> | 返回执行结果。 |
X
xuchenghua09 已提交
188

Z
zengyawen 已提交
189
**示例:**
X
xuchenghua09 已提交
190 191

```javascript
Y
yuyaozhi 已提交
192
import featureAbility from '@ohos.ability.featureAbility';
193
import wantConstant from '@ohos.ability.wantConstant'
X
xuchenghua09 已提交
194 195 196 197 198 199 200
featureAbility.startAbilityForResult(
    {
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
201
            flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
X
xuchenghua09 已提交
202
            deviceId: "",
G
guyuanzhang 已提交
203 204 205
            bundleName: "com.example.myapplication",
            /* FA模型中abilityName由package + Ability name组成 */
            abilityName: "com.example.entry.secondAbility",
X
xuchenghua09 已提交
206 207 208 209 210 211 212 213 214 215 216 217 218 219
            uri:"",
            parameters:
            {
                mykey0: 1111,
                mykey1: [1, 2, 3],
                mykey2: "[1, 2, 3]",
                mykey3: "xxxxxxxxxxxxxxxxxxxxxx",
                mykey4: [1, 15],
                mykey5: [false, true, false],
                mykey6: ["aaaaaa", "bbbbb", "ccccccccccc"],
                mykey7: true,
            },
        },
    },
220
).then((data) => {
X
xuchenghua09 已提交
221 222 223 224
    console.info("==========================>startAbilityForResult=======================>");
});
```

225
## featureAbility.terminateSelfWithResult<sup>7+</sup>
X
xuchenghua09 已提交
226

Z
zengyawen 已提交
227
terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\<void>): void
X
xuchenghua09 已提交
228

Z
zengyawen 已提交
229
设置此Page Ability将返回给调用者的结果代码和数据并破坏此Page Ability(callback形式)。
X
xuchenghua09 已提交
230

Y
yuyaozhi 已提交
231
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
232

Z
zengyawen 已提交
233
**参数:**
X
xuchenghua09 已提交
234

H
HelloCrease 已提交
235 236 237 238
| 名称        | 类型                              | 必填   | 描述             |
| --------- | ------------------------------- | ---- | -------------- |
| parameter | [AbilityResult](#abilityresult) | 是    | 表示被启动的Ability。 |
| callback  | AsyncCallback\<void>            | 是    | 被指定的回调方法。      |
X
xuchenghua09 已提交
239

Z
zengyawen 已提交
240
**示例:**
X
xuchenghua09 已提交
241 242 243

```javascript
import featureAbility from '@ohos.ability.featureAbility'
244
import wantConstant from '@ohos.ability.wantConstant'
X
xuchenghua09 已提交
245 246 247 248 249 250 251 252
featureAbility.terminateSelfWithResult(
    {
        resultCode: 1,
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
253
            flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
X
xuchenghua09 已提交
254
            deviceId: "",
G
guyuanzhang 已提交
255 256 257
            bundleName: "com.example.myapplication",
            /* FA模型中abilityName由package + Ability name组成 */
            abilityName: "com.example.entry.secondAbility",
X
xuchenghua09 已提交
258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273
            uri:"",
            parameters: {
                mykey0: 2222,
                mykey1: [1, 2, 3],
                mykey2: "[1, 2, 3]",
                mykey3: "ssssssssssssssssssssssssss",
                mykey4: [1, 15],
                mykey5: [false, true, false],
                mykey6: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
                mykey7: true,
            }
        },
    },
);
```

274
## featureAbility.terminateSelfWithResult<sup>7+</sup>
X
xuchenghua09 已提交
275

Z
zengyawen 已提交
276
terminateSelfWithResult(parameter: AbilityResult): Promise\<void>
X
xuchenghua09 已提交
277

Z
zengyawen 已提交
278
设置此Page Ability将返回给调用者的结果代码和数据并破坏此Page Ability(Promise形式)。
X
xuchenghua09 已提交
279

Y
yuyaozhi 已提交
280
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
281

Z
zengyawen 已提交
282
**参数:**
X
xuchenghua09 已提交
283

H
HelloCrease 已提交
284 285 286
| 名称        | 类型                              | 必填   | 描述            |
| --------- | ------------------------------- | ---- | ------------- |
| parameter | [AbilityResult](#abilityresult) | 是    | 表示被启动的Ability |
X
xuchenghua09 已提交
287

Z
zengyawen 已提交
288
**返回值:**
Y
yuyaozhi 已提交
289

H
HelloCrease 已提交
290 291
| 类型             | 说明              |
| -------------- | --------------- |
Z
zengyawen 已提交
292
| Promise\<void> | 以Promise形式返回结果。 |
X
xuchenghua09 已提交
293

Z
zengyawen 已提交
294
**示例:**
X
xuchenghua09 已提交
295 296

```javascript
Y
yuyaozhi 已提交
297
import featureAbility from '@ohos.ability.featureAbility';
298
import wantConstant from '@ohos.ability.wantConstant'
X
xuchenghua09 已提交
299 300 301 302 303 304 305 306
featureAbility.terminateSelfWithResult(
    {
        resultCode: 1,
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
307
            flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
X
xuchenghua09 已提交
308
            deviceId: "",
G
guyuanzhang 已提交
309 310 311
            bundleName: "com.example.myapplication",
            /* FA模型中abilityName由package + Ability name组成 */
            abilityName: "com.example.entry.secondAbility",
X
xuchenghua09 已提交
312 313 314 315 316 317 318 319 320 321 322 323 324
            uri:"",
            parameters: {
                mykey0: 2222,
                mykey1: [1, 2, 3],
                mykey2: "[1, 2, 3]",
                mykey3: "ssssssssssssssssssssssssss",
                mykey4: [1, 15],
                mykey5: [false, true, false],
                mykey6: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
                mykey7: true,
            }
        },
    }
325
).then((data) => {
X
xuchenghua09 已提交
326 327 328 329
    console.info("==========================>terminateSelfWithResult=======================>");
});
```

330
## featureAbility.hasWindowFocus<sup>7+<sup>
X
xuchenghua09 已提交
331

Z
zengyawen 已提交
332
hasWindowFocus(callback: AsyncCallback\<boolean>): void
X
xuchenghua09 已提交
333

Z
zengyawen 已提交
334
检查Ability的主窗口是否具有窗口焦点(callback形式)。
X
xuchenghua09 已提交
335

Y
yuyaozhi 已提交
336
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
337

Z
zengyawen 已提交
338
**参数:**
X
xuchenghua09 已提交
339

H
HelloCrease 已提交
340 341 342
| 名称       | 类型                      | 必填   | 描述                                       |
| -------- | ----------------------- | ---- | ---------------------------------------- |
| callback | AsyncCallback\<boolean> | 是    | 被指定的回调方法。<br>如果此Ability当前具有视窗焦点,则返回true;否则返回false。 |
X
xuchenghua09 已提交
343

Z
zengyawen 已提交
344
**示例:**
X
xuchenghua09 已提交
345 346

```javascript
Y
yuyaozhi 已提交
347
import featureAbility from '@ohos.ability.featureAbility';
X
xuchenghua09 已提交
348 349 350
featureAbility.hasWindowFocus()
```

351
## featureAbility.hasWindowFocus<sup>7+<sup>
X
xuchenghua09 已提交
352

Z
zengyawen 已提交
353
hasWindowFocus(): Promise\<boolean>
X
xuchenghua09 已提交
354

Z
zengyawen 已提交
355
检查Ability的主窗口是否具有窗口焦点(Promise形式)。
X
xuchenghua09 已提交
356

Y
yuyaozhi 已提交
357
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
358

Z
zengyawen 已提交
359
**返回值:**
X
xuchenghua09 已提交
360

H
HelloCrease 已提交
361 362
| 类型                | 说明                                    |
| ----------------- | ------------------------------------- |
Z
zengyawen 已提交
363
| Promise\<boolean> | 如果此Ability当前具有视窗焦点,则返回true;否则返回false。 |
X
xuchenghua09 已提交
364

Z
zengyawen 已提交
365
**示例:**
X
xuchenghua09 已提交
366 367

```javascript
Y
yuyaozhi 已提交
368
import featureAbility from '@ohos.ability.featureAbility';
369
featureAbility.hasWindowFocus().then((data) => {
X
xuchenghua09 已提交
370 371 372 373
    console.info("==========================>hasWindowFocus=======================>");
});
```

Z
zengyawen 已提交
374
## featureAbility.getWant
X
xuchenghua09 已提交
375

Z
zengyawen 已提交
376
getWant(callback: AsyncCallback\<Want>): void
X
xuchenghua09 已提交
377

Z
zengyawen 已提交
378
获取从Ability发送的Want(callback形式)。
X
xuchenghua09 已提交
379

Y
yuyaozhi 已提交
380
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
381

Z
zengyawen 已提交
382
**参数:**
X
xuchenghua09 已提交
383

H
HelloCrease 已提交
384 385
| 名称       | 类型                            | 必填   | 描述        |
| -------- | ----------------------------- | ---- | --------- |
ahjxliubao2's avatar
ahjxliubao2 已提交
386
| callback | AsyncCallback\<[Want](js-apis-application-Want.md)> | 是    | 被指定的回调方法。 |
X
xuchenghua09 已提交
387

Z
zengyawen 已提交
388
**示例:**
X
xuchenghua09 已提交
389 390

```javascript
Y
yuyaozhi 已提交
391
import featureAbility from '@ohos.ability.featureAbility';
X
xuchenghua09 已提交
392 393 394
featureAbility.getWant()
```

Z
zengyawen 已提交
395
## featureAbility.getWant
X
xuchenghua09 已提交
396

Z
zengyawen 已提交
397
getWant(): Promise\<Want>
X
xuchenghua09 已提交
398

Z
zengyawen 已提交
399
获取从Ability发送的Want(Promise形式)。
X
xuchenghua09 已提交
400

Y
yuyaozhi 已提交
401
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
402

Z
zengyawen 已提交
403
**返回值:**
Y
yuyaozhi 已提交
404

H
HelloCrease 已提交
405 406
| 类型                      | 说明               |
| ----------------------- | ---------------- |
ahjxliubao2's avatar
ahjxliubao2 已提交
407
| Promise\<[Want](js-apis-application-Want.md)> | 以Promise的形式返回结果。 |
X
xuchenghua09 已提交
408

Z
zengyawen 已提交
409
**示例:**
X
xuchenghua09 已提交
410 411

```javascript
Y
yuyaozhi 已提交
412
import featureAbility from '@ohos.ability.featureAbility';
413
featureAbility.getWant().then((data) => {
414
	console.info("==========================>getWantCallBack=======================>");
X
xuchenghua09 已提交
415 416 417
});
```

Z
zengyawen 已提交
418
## featureAbility.getContext
X
xuchenghua09 已提交
419

Z
zengyawen 已提交
420
getContext(): Context
X
xuchenghua09 已提交
421

Z
zengyawen 已提交
422
获取应用上下文。
X
xuchenghua09 已提交
423

Y
yuyaozhi 已提交
424
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
425

Z
zengyawen 已提交
426
**返回值:**
Y
yuyaozhi 已提交
427

H
HelloCrease 已提交
428 429
| 类型      | 说明         |
| ------- | ---------- |
Z
zengyawen 已提交
430
| Context | 返回应用程序上下文。 |
X
xuchenghua09 已提交
431

Z
zengyawen 已提交
432
**示例:**
X
xuchenghua09 已提交
433 434

```javascript
Y
yuyaozhi 已提交
435
import featureAbility from '@ohos.ability.featureAbility';
X
xuchenghua09 已提交
436 437 438 439
var context = featureAbility.getContext()
context.getBundleName()
```

440
## featureAbility.terminateSelf<sup>7+</sup>
X
xuchenghua09 已提交
441

Z
zengyawen 已提交
442
terminateSelf(callback: AsyncCallback\<void>): void
X
xuchenghua09 已提交
443

Z
zengyawen 已提交
444
设置Page Ability返回给被调用方的结果代码和数据,并销毁此Page Ability(callback形式)。
X
xuchenghua09 已提交
445

Y
yuyaozhi 已提交
446
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
447

Z
zengyawen 已提交
448
**参数:**
X
xuchenghua09 已提交
449

H
HelloCrease 已提交
450 451 452
| 名称       | 类型                   | 必填   | 描述       |
| -------- | -------------------- | ---- | -------- |
| callback | AsyncCallback\<void> | 是    | 被指定的回调方法 |
X
xuchenghua09 已提交
453

Z
zengyawen 已提交
454
**示例:**
X
xuchenghua09 已提交
455 456

```javascript
Y
yuyaozhi 已提交
457
import featureAbility from '@ohos.ability.featureAbility';
X
xuchenghua09 已提交
458 459 460
featureAbility.terminateSelf()
```

461
## featureAbility.terminateSelf<sup>7+</sup>
X
xuchenghua09 已提交
462

Z
zengyawen 已提交
463
terminateSelf(): Promise\<void>
X
xuchenghua09 已提交
464

Z
zengyawen 已提交
465
设置Page Ability返回给被调用方的结果代码和数据,并销毁此Page Ability(Promise形式)。
X
xuchenghua09 已提交
466

Y
yuyaozhi 已提交
467
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
468

Z
zengyawen 已提交
469
**返回值:**
Y
yuyaozhi 已提交
470

H
HelloCrease 已提交
471 472
| 类型             | 说明               |
| -------------- | ---------------- |
Z
zengyawen 已提交
473
| Promise\<void> | 以Promise的形式返回结果。 |
X
xuchenghua09 已提交
474

Z
zengyawen 已提交
475
**示例:**
X
xuchenghua09 已提交
476 477

```javascript
Y
yuyaozhi 已提交
478
import featureAbility from '@ohos.ability.featureAbility';
479 480
featureAbility.terminateSelf().then((data) => {
    console.info("==========================>terminateSelfCallBack=======================>");
X
xuchenghua09 已提交
481 482 483
});
```

484
## featureAbility.connectAbility<sup>7+</sup>
X
xuchenghua09 已提交
485

Z
zengyawen 已提交
486
connectAbility(request: Want, options:ConnectOptions): number
X
xuchenghua09 已提交
487

Z
zengyawen 已提交
488
将当前ability连接到指定ServiceAbility(callback形式)。
X
xuchenghua09 已提交
489

Y
yuyaozhi 已提交
490
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
491

Z
zengyawen 已提交
492
**参数:**
X
xuchenghua09 已提交
493

H
HelloCrease 已提交
494 495
| 名称      | 类型             | 必填   | 描述                    |
| ------- | -------------- | ---- | --------------------- |
ahjxliubao2's avatar
ahjxliubao2 已提交
496
| request | [Want](js-apis-application-Want.md)  | 是    | 表示被连接的ServiceAbility。 |
497
| options | [ConnectOptions](#connectoptions) | 是    | 被指定的回调方法。             |
X
xuchenghua09 已提交
498

499 500 501
## ConnectOptions

ConnectOptions类型说明
X
xuchenghua09 已提交
502

ahjxliubao2's avatar
ahjxliubao2 已提交
503 504
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core

H
HelloCrease 已提交
505 506
| 名称           | 读写属性 | 类型       | 必填   | 描述                        |
| ------------ | ---- | -------- | ---- | ------------------------- |
Y
yuyaozhi 已提交
507 508 509
| onConnect<sup>7+</sup>    | 只读   | function | 是    | 连接成功时的回调函数。               |
| onDisconnect<sup>7+</sup> | 只读   | function | 是    | 连接失败时的回调函数。               |
| onFailed<sup>7+</sup>     | 只读   | function | 是    | ConnectAbility调用失败时的回调函数。 |
X
xuchenghua09 已提交
510

Z
zengyawen 已提交
511
**返回值:**
Y
yuyaozhi 已提交
512

H
HelloCrease 已提交
513 514
| 类型     | 说明                   |
| ------ | -------------------- |
Z
zengyawen 已提交
515
| number | 连接的ServiceAbilityID。 |
X
xuchenghua09 已提交
516

Z
zengyawen 已提交
517
**示例:**
X
xuchenghua09 已提交
518 519

```javascript
H
hanhaibin 已提交
520
import rpc from '@ohos.rpc'
X
xuchenghua09 已提交
521 522 523 524 525 526 527 528 529 530 531 532
import featureAbility from '@ohos.ability.featureAbility'
function onConnectCallback(element, remote){
    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
}
function onDisconnectCallback(element){
    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
}
function onFailedCallback(code){
    console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connId = featureAbility.connectAbility(
    {
533
        deviceId: "",
X
xuchenghua09 已提交
534 535 536 537 538 539 540 541 542 543 544
        bundleName: "com.ix.ServiceAbility",
        abilityName: "ServiceAbilityA",
    },
    {
        onConnect: onConnectCallback,
        onDisconnect: onDisconnectCallback,
        onFailed: onFailedCallback,
    },
);
```

545
## featureAbility.disconnectAbility<sup>7+</sup>
X
xuchenghua09 已提交
546

Z
zengyawen 已提交
547
disconnectAbility(connection: number, callback:AsyncCallback\<void>): void
X
xuchenghua09 已提交
548

Z
zengyawen 已提交
549
断开与指定ServiceAbility的连接(callback形式)。
X
xuchenghua09 已提交
550

Y
yuyaozhi 已提交
551
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
552

Z
zengyawen 已提交
553
**参数:**
X
xuchenghua09 已提交
554

H
HelloCrease 已提交
555 556 557 558
| 名称         | 类型                   | 必填   | 描述                      |
| ---------- | -------------------- | ---- | ----------------------- |
| connection | number               | 是    | 指定断开连接的ServiceAbilityID |
| callback   | AsyncCallback\<void> | 是    | 被指定的回调方法                |
X
xuchenghua09 已提交
559

Z
zengyawen 已提交
560
**示例:**
X
xuchenghua09 已提交
561 562

```javascript
H
hanhaibin 已提交
563
import rpc from '@ohos.rpc'
X
xuchenghua09 已提交
564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586
import featureAbility from '@ohos.ability.featureAbility'
function onConnectCallback(element, remote){
    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
}
function onDisconnectCallback(element){
    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
}
function onFailedCallback(code){
    console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connId = featureAbility.connectAbility(
    {
        bundleName: "com.ix.ServiceAbility",
        abilityName: "ServiceAbilityA",
    },
    {
        onConnect: onConnectCallback,
        onDisconnect: onDisconnectCallback,
        onFailed: onFailedCallback,
    },
);
var result = featureAbility.disconnectAbility(connId,
    (error,data) => {
587
        console.log('featureAbilityTest DisConnectJsSameBundleName result errCode : ' + error.code + " data: " + data)
X
xuchenghua09 已提交
588 589 590 591
    },
);
```

592
## featureAbility.disconnectAbility<sup>7+</sup>
X
xuchenghua09 已提交
593

Z
zengyawen 已提交
594
disconnectAbility(connection: number): Promise\<void>
X
xuchenghua09 已提交
595

Z
zengyawen 已提交
596
断开与指定ServiceAbility的连接(Promise形式)。
X
xuchenghua09 已提交
597

Y
yuyaozhi 已提交
598
**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
599

Z
zengyawen 已提交
600
**参数:**
X
xuchenghua09 已提交
601

H
HelloCrease 已提交
602 603 604
| 名称         | 类型     | 必填   | 描述                      |
| ---------- | ------ | ---- | ----------------------- |
| connection | number | 是    | 指定断开连接的ServiceAbilityID |
X
xuchenghua09 已提交
605

Z
zengyawen 已提交
606
**返回值:**
Y
yuyaozhi 已提交
607

H
HelloCrease 已提交
608 609
| 类型             | 说明              |
| -------------- | --------------- |
Z
zengyawen 已提交
610
| Promise\<void> | 以Promise形式返回结果。 |
X
xuchenghua09 已提交
611

Z
zengyawen 已提交
612
**示例:**
X
xuchenghua09 已提交
613 614

```javascript
H
hanhaibin 已提交
615
import rpc from '@ohos.rpc'
X
xuchenghua09 已提交
616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636
import featureAbility from '@ohos.ability.featureAbility'
function onConnectCallback(element, remote){
    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
}
function onDisconnectCallback(element){
    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
}
function onFailedCallback(code){
    console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connId = featureAbility.connectAbility(
    {
        bundleName: "com.ix.ServiceAbility",
        abilityName: "ServiceAbilityA",
    },
    {
        onConnect: onConnectCallback,
        onDisconnect: onDisconnectCallback,
        onFailed: onFailedCallback,
    },
);
ahjxliubao2's avatar
ahjxliubao2 已提交
637

Y
yuyaozhi 已提交
638 639 640 641
featureAbility.disconnectAbility(connId).then((data) => {
    console.log('data : '  + data);
}).catch((error)=>{
    console.log('featureAbilityTest result errCode : ' + error.code);
ahjxliubao2's avatar
ahjxliubao2 已提交
642
});
X
xuchenghua09 已提交
643 644
```

645 646 647 648 649

## featureAbility.getWindow<sup>7+</sup>

getWindow(callback: AsyncCallback\<window.Window>): void

650
获取当前Ability对应的窗口(callback形式)。
651 652 653 654 655

**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel

**参数:**

656 657 658
| 名称     | 类型                          | 必填 | 描述                          |
| -------- | ----------------------------- | ---- | ----------------------------- |
| callback | AsyncCallback\<window.Window> | 是   | 返回与当前Ability对应的窗口。 |
659 660 661 662

**示例:**

```javascript
H
HelloCrease 已提交
663
featureAbility.getWindow()
664 665 666 667 668 669
```

## featureAbility.getWindow<sup>7+</sup>

getWindow(): Promise\<window.Window>;

670
获取当前Ability对应的窗口(Promise形式)。
671 672 673 674 675

**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel

**返回值:**

676 677 678
| 类型                    | 说明                          |
| ----------------------- | ----------------------------- |
| Promise\<window.Window> | 返回与当前Ability对应的窗口。 |
679 680 681 682

**示例:**

```javascript
H
HelloCrease 已提交
683
featureAbility.getWindow().then((data) => {
684
  console.info("=============getWindowPromise========== " +  JSON.stringify(data)); 
H
HelloCrease 已提交
685
});
686 687
```

688 689 690 691 692 693 694 695 696 697
## ConnectOptions.onConnect<sup>7+</sup>

onConnect(elementName: ElementName, remote: rpc.IRemoteObject): void;

连接成功时的回调函数。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**参数:**

H
HelloCrease 已提交
698 699 700 701
| 名称          | 类型                | 必填   | 描述       |
| ----------- | ----------------- | ---- | -------- |
| elementName | ElementName       | 是    | 元素名。     |
| remote      | rpc.IRemoteObject | 是    | rpc远程对象。 |
702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740

**示例:**

```javascript
import rpc from '@ohos.rpc'
import featureAbility from '@ohos.ability.featureAbility'
function onConnectCallback(element, remote){
    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
}
function onDisconnectCallback(element){
    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
}
function onFailedCallback(code){
    console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connId = featureAbility.connectAbility(
    {
        deviceId: "",
        bundleName: "com.ix.ServiceAbility",
        abilityName: "ServiceAbilityA",
    },
    {
        onConnect: onConnectCallback,
        onDisconnect: onDisconnectCallback,
        onFailed: onFailedCallback,
    },
);
```

## ConnectOptions.onDisconnect<sup>7+</sup>

onDisconnect(elementName: ElementName): void;

连接失败时的回调函数。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**参数:**

H
HelloCrease 已提交
741 742 743
| 名称          | 类型          | 必填   | 描述   |
| ----------- | ----------- | ---- | ---- |
| elementName | ElementName | 是    | 元素名。 |
744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782

**示例:**

```javascript
import rpc from '@ohos.rpc'
import featureAbility from '@ohos.ability.featureAbility'
function onConnectCallback(element, remote){
    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
}
function onDisconnectCallback(element){
    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
}
function onFailedCallback(code){
    console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connId = featureAbility.connectAbility(
    {
        deviceId: "",
        bundleName: "com.ix.ServiceAbility",
        abilityName: "ServiceAbilityA",
    },
    {
        onConnect: onConnectCallback,
        onDisconnect: onDisconnectCallback,
        onFailed: onFailedCallback,
    },
);
```

## ConnectOptions.onFailed<sup>7+</sup>

onFailed(code: number): void;

ConnectAbility调用失败时的回调函数。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**参数:**

H
HelloCrease 已提交
783 784 785
| 名称   | 类型     | 必填   | 描述        |
| ---- | ------ | ---- | --------- |
| code | number | 是    | number类型。 |
786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817

**示例:**

```javascript
import rpc from '@ohos.rpc'
import featureAbility from '@ohos.ability.featureAbility'
function onConnectCallback(element, remote){
    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
}
function onDisconnectCallback(element){
    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
}
function onFailedCallback(code){
    console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code)
}
var connId = featureAbility.connectAbility(
    {
        deviceId: "",
        bundleName: "com.ix.ServiceAbility",
        abilityName: "ServiceAbilityA",
    },
    {
        onConnect: onConnectCallback,
        onDisconnect: onDisconnectCallback,
        onFailed: onFailedCallback,
    },
);
```




818 819 820 821 822 823 824 825

## AbilityWindowConfiguration

使用时通过featureAbility.AbilityWindowConfiguration获取。

**示例:**

```
826
featureAbility.AbilityWindowConfiguration.WINDOW_MODE_UNDEFINED
827 828
```

829 830
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel

H
HelloCrease 已提交
831 832
| 名称                                       | 参数   | 描述                                       |
| ---------------------------------------- | ---- | ---------------------------------------- |
833 834 835 836 837
| WINDOW_MODE_UNDEFINED<sup>7+</sup>       | 0    | 未定义。 |
| WINDOW_MODE_FULLSCREEN<sup>7+</sup>      | 1    | 全屏。    |
| WINDOW_MODE_SPLIT_PRIMARY<sup>7+</sup>   | 100  | 分屏主屏。 |
| WINDOW_MODE_SPLIT_SECONDARY<sup>7+</sup> | 101  | 分屏次屏。 |
| WINDOW_MODE_FLOATING<sup>7+</sup>        | 102  | 悬浮窗。 |
838 839 840 841 842 843 844 845 846 847 848


## AbilityStartSetting

abilityStartSetting属性是一个定义为[key: string]: any的对象,key对应设定类型为:AbilityStartSetting枚举类型,value对应设定类型为:AbilityWindowConfiguration枚举类型。

使用时通过featureAbility.AbilityStartSetting获取。

**示例:**

```
849
featureAbility.AbilityStartSetting.BOUNDS_KEY
850 851
```

852 853
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel

H
HelloCrease 已提交
854 855
| 名称                           | 参数              | 描述                                       |
| ---------------------------- | --------------- | ---------------------------------------- |
856 857 858
| BOUNDS_KEY<sup>7+</sup>      | "abilityBounds" | 窗口显示大小属性的名称。 |
| WINDOW_MODE_KEY<sup>7+</sup> | "windowMode"    | 窗口显示模式属性的名称。|
| DISPLAY_ID_KEY<sup>7+</sup>  | "displayId"     | 窗口显示设备ID属性的名称。 |
859 860 861 862 863

## ErrorCode

获取错误代码。

864 865
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel

H
HelloCrease 已提交
866 867
| 变量                             | 值    | 说明                                       |
| ------------------------------ | ---- | ---------------------------------------- |
868 869 870 871
| NO_ERROR<sup>7+</sup>          | 0    | 没有错误。 |
| INVALID_PARAMETER<sup>7+</sup> | -1   | 无效的参数。 |
| ABILITY_NOT_FOUND<sup>7+</sup> | -2   | 找不到能力。 |
| PERMISSION_DENY<sup>7+</sup>   | -3   | 拒绝许可。 |
872 873 874 875 876 877


## DataAbilityOperationType

指示数据的操作类型。

878 879
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel

H
HelloCrease 已提交
880 881
| 变量                       | 值    | 说明                                       |
| ------------------------ | ---- | ---------------------------------------- |
882 883 884 885
| TYPE_INSERT<sup>7+</sup> | 1    | 插入类型。 |
| TYPE_UPDATE<sup>7+</sup> | 2    | 修改类型。 |
| TYPE_DELETE<sup>7+</sup> | 3    | 删除类型。 |
| TYPE_ASSERT<sup>7+</sup> | 4    | 声明类型。 |
886 887 888



Z
zengyawen 已提交
889
## AbilityResult
X
xuchenghua09 已提交
890

ahjxliubao2's avatar
ahjxliubao2 已提交
891 892
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase

H
HelloCrease 已提交
893 894 895
| 名称                      | 读写属性 | 类型            | 必填   | 描述                                    |
| ----------------------- | ---- | ------------- | ---- | ------------------------------------- |
| resultCode<sup>7+</sup> | 只读   | number        | 是    | 指示销毁该能力后返回的结果代码。您可以定义结果代码来识别错误(暂不支持)。 |
ahjxliubao2's avatar
ahjxliubao2 已提交
896
| want<sup>7+</sup>       | 只读   | [Want](js-apis-application-Want.md) | 否    | 指示销毁该能力后返回的数据。您可以定义返回的数据。此参数可以为null。  |
X
xuchenghua09 已提交
897

Z
zengyawen 已提交
898
## StartAbilityParameter
X
xuchenghua09 已提交
899

Y
yuyaozhi 已提交
900
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.FAModel
ahjxliubao2's avatar
ahjxliubao2 已提交
901

H
HelloCrease 已提交
902 903
| 名称                  | 读写属性 | 类型                   | 必填   | 描述                                     |
| ------------------- | ---- | -------------------- | ---- | -------------------------------------- |
ahjxliubao2's avatar
ahjxliubao2 已提交
904
| want                | 只读   | [Want](js-apis-application-Want.md)        | 是    | 表示需要包含有关目标启动能力的信息。                     |
H
HelloCrease 已提交
905
| abilityStartSetting | 只读   | {[key: string]: any} | 否    | 表示能力的特殊属性,当开发者启动能力时,该属性可以作为调用中的输入参数传递。 |
X
xuchenghua09 已提交
906 907 908

## flags说明

ahjxliubao2's avatar
ahjxliubao2 已提交
909 910
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityBase

H
HelloCrease 已提交
911 912 913 914 915 916 917 918
| 名称                                   | 参数         | 描述                                       |
| ------------------------------------ | ---------- | ---------------------------------------- |
| FLAG_AUTH_READ_URI_PERMISSION        | 0x00000001 | 指示对URI执行读取操作的授权。                         |
| FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | 指示对URI执行写入操作的授权。                         |
| FLAG_ABILITY_FORWARD_RESULT          | 0x00000004 | 将结果返回给元能力。                               |
| FLAG_ABILITY_CONTINUATION            | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备。                  |
| FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | 指定组件是否属于OHOS。                            |
| FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | 指定是否启动某个能力。                              |
919 920
| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。                          |
| FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 按照前缀匹配的方式验证URI权限。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。                        |
H
HelloCrease 已提交
921
| FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动。                        |
922
| FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。           |
H
HelloCrease 已提交
923 924 925
| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示迁移是可拉回的。                               |
| FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能。                       |
| FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,使用后台模式安装该功能。                       |
926
| FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给 **[ohos.app.Context](js-apis-ability-context.md)****startAbility**方法的**Want**设置此标志,并且必须与**flag_ABILITY_NEW_MISSION**一起使用。 |
H
HelloCrease 已提交
927
| FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                       |
ahjxliubao2's avatar
ahjxliubao2 已提交
928
| FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
X
xuchenghua09 已提交
929