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

Z
zengyawen 已提交
3
## 使用限制
X
xuchenghua09 已提交
4 5 6

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

Z
zengyawen 已提交
7
## 导入模块
X
xuchenghua09 已提交
8 9 10 11 12

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

Z
zengyawen 已提交
13
## featureAbility.startAbility
X
xuchenghua09 已提交
14

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

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

Z
zengyawen 已提交
19
**参数:**
X
xuchenghua09 已提交
20

Z
zengyawen 已提交
21 22 23 24
| 名称      | 类型                  | 必填 | 描述                |
| --------- | --------------------- | ---- | ------------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是   | 表示被启动的Ability。 |
| callback  | AsyncCallback\<number>         | 是   | 被指定的回调方法。   |
X
xuchenghua09 已提交
25

Z
zengyawen 已提交
26
**示例:**
X
xuchenghua09 已提交
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

```javascript
import featureAbility from '@ohos.ability.featureAbility'
featureAbility.startAbility(
        {
        want:
        {
            action: "",
            entities: [""],
            type: "",
            flags: FLAG_AUTH_READ_URI_PERMISSION,
            deviceId: "",
            bundleName: "com.example.startability",
            abilityName: "com.example.startability.MainAbility",
            uri: ""
        },
    },
  );
)
```



Z
zengyawen 已提交
50
## featureAbility.startAbility
X
xuchenghua09 已提交
51

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

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

Z
zengyawen 已提交
56
**参数:**
X
xuchenghua09 已提交
57

Z
zengyawen 已提交
58 59 60
| 名称      | 类型                                            | 必填 | 描述                  |
| --------- | ----------------------------------------------- | ---- | --------------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是   | 表示被启动的Ability。 |
X
xuchenghua09 已提交
61

Z
zengyawen 已提交
62
**示例:**
X
xuchenghua09 已提交
63 64 65 66 67 68 69

```javascript
import featureAbility from '@ohos.ability.featureAbility'
featureAbility.startAbility(
    {
        want:
        {
70
            action: "action.system.home",
X
xuchenghua09 已提交
71 72 73 74 75 76 77 78 79 80 81 82 83 84
            entities: ["entity.system.home"],
            type: "MIMETYPE",
			flags: FLAG_AUTH_READ_URI_PERMISSION,
            deviceId: deviceId,
            bundleName: "com.example.startability",
            abilityName: "com.example.startability.MainAbility",
            uri: ""
        },
    }
   ).then((void) => {
	console.info("==========================>startAbility=======================>");
});
```

Z
zengyawen 已提交
85
## featureAbility.acquireDataAbilityHelper
X
xuchenghua09 已提交
86

Z
zengyawen 已提交
87
acquireDataAbilityHelper(uri: string): DataAbilityHelper
X
xuchenghua09 已提交
88

Z
zengyawen 已提交
89
获取dataAbilityHelper。
X
xuchenghua09 已提交
90

Z
zengyawen 已提交
91
**参数:**
X
xuchenghua09 已提交
92

Z
zengyawen 已提交
93 94 95
| 名称 | 类型   | 必填 | 描述                     |
| ---- | ------ | ---- | ------------------------ |
| uri  | string | 是   | 指示要打开的文件的路径。 |
X
xuchenghua09 已提交
96

Z
zengyawen 已提交
97
**返回值:**
X
xuchenghua09 已提交
98

Z
zengyawen 已提交
99 100 101
| 类型              | 说明                                         |
| ----------------- | -------------------------------------------- |
| DataAbilityHelper | 用来协助其他Ability访问DataAbility的工具类。 |
X
xuchenghua09 已提交
102

Z
zengyawen 已提交
103
**示例:**
X
xuchenghua09 已提交
104 105 106 107 108 109 110 111

```javascript
import featureAbility from '@ohos.ability.featureAbility'
featureAbility.acquireDataAbilityHelper(
    "dataability:///com.exmaple.DataAbility"
)
```

Z
zengyawen 已提交
112
## featureAbility.startAbilityForResult
X
xuchenghua09 已提交
113

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

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

Z
zengyawen 已提交
118
**参数:**
X
xuchenghua09 已提交
119

Z
zengyawen 已提交
120 121 122 123
| 名称      | 类型                                            | 必填 | 描述                  |
| --------- | ----------------------------------------------- | ---- | --------------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是   | 表示被启动的Ability。 |
| callback  | AsyncCallback\<[AbilityResult](#abilityresult)> | 是   | 被指定的回调方法。    |
X
xuchenghua09 已提交
124

Z
zengyawen 已提交
125
**示例:**
X
xuchenghua09 已提交
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145

```javascript
import featureAbility from '@ohos.ability.featureability';
featureAbility.startAbilityForResult(
   {
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
            flags: FLAG_AUTH_READ_URI_PERMISSION,
            deviceId: "",
            bundleName: "com.example.featureabilitytest",
            abilityName: "com.example.featureabilitytest.MainAbility",
            uri:""
        },
    },
)
```

Z
zengyawen 已提交
146
## featureAbility.startAbilityForResult
X
xuchenghua09 已提交
147

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

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

Z
zengyawen 已提交
152
**参数:**
X
xuchenghua09 已提交
153

Z
zengyawen 已提交
154 155 156
| 名称      | 类型                                            | 必填 | 描述                |
| --------- | ----------------------------------------------- | ---- | ------------------- |
| parameter | [StartAbilityParameter](#startabilityparameter) | 是   | 表示被启动的Ability |
X
xuchenghua09 已提交
157

Z
zengyawen 已提交
158 159 160 161
**返回值:**
| 类型                                      | 说明           |
| ----------------------------------------- | -------------- |
| Promise\<[AbilityResult](#abilityresult)> | 返回执行结果。 |
X
xuchenghua09 已提交
162

Z
zengyawen 已提交
163
**示例:**
X
xuchenghua09 已提交
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197

```javascript
import featureAbility from '@ohos.ability.featureability';
featureAbility.startAbilityForResult(
    {
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
            flags: FLAG_AUTH_READ_URI_PERMISSION,
            deviceId: "",
            bundleName: "com.example.featureabilitytest",
            abilityName: "com.example.featureabilitytest.MainAbility",
            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,
            },
        },
        requestCode: 2,
    },
).then((void) => {
    console.info("==========================>startAbilityForResult=======================>");
});
```

Z
zengyawen 已提交
198
## featureAbility.terminateSelfWithResult
X
xuchenghua09 已提交
199

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

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

Z
zengyawen 已提交
204
**参数:**
X
xuchenghua09 已提交
205

Z
zengyawen 已提交
206 207 208 209
| 名称      | 类型          | 必填 | 描述                |
| --------- | ------------- | ---- | ------------------- |
| parameter | [AbilityResult](#abilityresult) | 是   | 表示被启动的Ability。 |
| callback  | AsyncCallback\<void> | 是   | 被指定的回调方法。  |
X
xuchenghua09 已提交
210

Z
zengyawen 已提交
211
**示例:**
X
xuchenghua09 已提交
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242

```javascript
import featureAbility from '@ohos.ability.featureAbility'
featureAbility.terminateSelfWithResult(
    {
        resultCode: 1,
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
            flags: FLAG_AUTH_READ_URI_PERMISSION,
            deviceId: "",
            bundleName: "com.example.featureabilitytest",
            abilityName: "com.example.featureabilitytest.MainAbility",
            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,
            }
        },
    },
);
```

Z
zengyawen 已提交
243
## featureAbility.terminateSelfWithResult
X
xuchenghua09 已提交
244

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

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

Z
zengyawen 已提交
249
**参数:**
X
xuchenghua09 已提交
250

Z
zengyawen 已提交
251 252 253
| 名称      | 类型                            | 必填 | 描述                |
| --------- | ------------------------------- | ---- | ------------------- |
| parameter | [AbilityResult](#abilityresult) | 是   | 表示被启动的Ability |
X
xuchenghua09 已提交
254

Z
zengyawen 已提交
255 256 257 258
**返回值:**
| 类型           | 说明                    |
| -------------- | ----------------------- |
| Promise\<void> | 以Promise形式返回结果。 |
X
xuchenghua09 已提交
259

Z
zengyawen 已提交
260
**示例:**
X
xuchenghua09 已提交
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295

```javascript
import featureAbility from '@ohos.ability.featureability';
featureAbility.terminateSelfWithResult(
    {
        resultCode: 1,
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
            flags: FLAG_AUTH_READ_URI_PERMISSION,
            deviceId: "",
            bundleName: "com.example.featureabilitytest",
            abilityName: "com.example.featureabilitytest.MainAbility",
            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,
            }
        },
    }
).then((void) => {
    console.info("==========================>terminateSelfWithResult=======================>");
});
```



Z
zengyawen 已提交
296
## featureAbility.hasWindowFocus
X
xuchenghua09 已提交
297

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

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

Z
zengyawen 已提交
302
**参数:**
X
xuchenghua09 已提交
303

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

Z
zengyawen 已提交
308
**示例:**
X
xuchenghua09 已提交
309 310 311 312 313 314 315 316

```javascript
import featureAbility from '@ohos.ability.featureability';
featureAbility.hasWindowFocus()
```



Z
zengyawen 已提交
317
## featureAbility.hasWindowFocus
X
xuchenghua09 已提交
318

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

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

Z
zengyawen 已提交
323
**返回值:**
X
xuchenghua09 已提交
324

Z
zengyawen 已提交
325 326 327
| 类型              | 说明                                                       |
| ----------------- | ---------------------------------------------------------- |
| Promise\<boolean> | 如果此Ability当前具有视窗焦点,则返回true;否则返回false。 |
X
xuchenghua09 已提交
328

Z
zengyawen 已提交
329
**示例:**
X
xuchenghua09 已提交
330 331 332 333 334 335 336 337 338 339

```javascript
import featureAbility from '@ohos.ability.featureability';
featureAbility.hasWindowFocus().then((void) => {
    console.info("==========================>hasWindowFocus=======================>");
});
```



Z
zengyawen 已提交
340
## featureAbility.getWant
X
xuchenghua09 已提交
341

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

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

Z
zengyawen 已提交
346
**参数:**
X
xuchenghua09 已提交
347

Z
zengyawen 已提交
348 349 350
| 名称     | 类型                          | 必填 | 描述               |
| -------- | ----------------------------- | ---- | ------------------ |
| callback | AsyncCallback\<[Want](#want)> | 是   | 被指定的回调方法。 |
X
xuchenghua09 已提交
351

Z
zengyawen 已提交
352
**示例:**
X
xuchenghua09 已提交
353 354 355 356 357 358 359 360

```javascript
import featureAbility from '@ohos.ability.featureability';
featureAbility.getWant()
```



Z
zengyawen 已提交
361
## featureAbility.getWant
X
xuchenghua09 已提交
362

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

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

Z
zengyawen 已提交
367 368 369 370
**返回值:**
| 类型                    | 说明                      |
| ----------------------- | ------------------------- |
| Promise\<[Want](#want)> | 以Promise的形式返回结果。 |
X
xuchenghua09 已提交
371

Z
zengyawen 已提交
372
**示例:**
X
xuchenghua09 已提交
373 374 375 376 377 378 379 380

```javascript
import featureAbility from '@ohos.ability.featureability';
featureAbility.getWant().then((void) => {
		console.info("==========================>getWantCallBack=======================>");
});
```

Z
zengyawen 已提交
381
## featureAbility.getContext
X
xuchenghua09 已提交
382

Z
zengyawen 已提交
383
getContext(): Context
X
xuchenghua09 已提交
384

Z
zengyawen 已提交
385
获取应用上下文。
X
xuchenghua09 已提交
386

Z
zengyawen 已提交
387 388 389 390
**返回值:**
| 类型    | 说明                 |
| ------- | -------------------- |
| Context | 返回应用程序上下文。 |
X
xuchenghua09 已提交
391

Z
zengyawen 已提交
392
**示例:**
X
xuchenghua09 已提交
393 394 395 396 397 398 399 400 401

```javascript
import featureAbility from '@ohos.ability.featureability';
var context = featureAbility.getContext()
context.getBundleName()
```



Z
zengyawen 已提交
402
## featureAbility.terminateSelf
X
xuchenghua09 已提交
403

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

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

Z
zengyawen 已提交
408
**参数:**
X
xuchenghua09 已提交
409

Z
zengyawen 已提交
410 411 412
| 名称     | 类型                 | 必填 | 描述             |
| -------- | -------------------- | ---- | ---------------- |
| callback | AsyncCallback\<void> | 是   | 被指定的回调方法 |
X
xuchenghua09 已提交
413

Z
zengyawen 已提交
414
**示例:**
X
xuchenghua09 已提交
415 416 417 418 419 420 421 422

```javascript
import featureAbility from '@ohos.ability.featureability';
featureAbility.terminateSelf()
```



Z
zengyawen 已提交
423
## featureAbility.terminateSelf
X
xuchenghua09 已提交
424

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

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

Z
zengyawen 已提交
429 430 431 432
**返回值:**
| 类型           | 说明                      |
| -------------- | ------------------------- |
| Promise\<void> | 以Promise的形式返回结果。 |
X
xuchenghua09 已提交
433

Z
zengyawen 已提交
434
**示例:**
X
xuchenghua09 已提交
435 436 437 438 439 440 441

```javascript
import featureAbility from '@ohos.ability.featureability';
featureAbility.terminateSelf().then((void) => {		    console.info("==========================>terminateSelfCallBack=======================>");
});
```

Z
zengyawen 已提交
442
## featureAbility.connectAbility
X
xuchenghua09 已提交
443

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

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

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

Z
zengyawen 已提交
450 451
| 名称    | 类型           | 必填 | 描述                         |
| ------- | -------------- | ---- | ---------------------------- |
452
| request | [Want](#want)           | 是   | 表示被连接的ServiceAbility。 |
Z
zengyawen 已提交
453
| options | ConnectOptions | 是   | 被指定的回调方法。           |
X
xuchenghua09 已提交
454

Z
zengyawen 已提交
455
**Want类型说明:**
456 457 458 459 460 461 462

| 名称         | 读写属性  | 类型     | 必填 | 描述                                                              |
| ------------ | -------- | -------- | ---- | ----------------------------------                               |
| deviceId     | 只读     | string   | 否   | 表示被连接的ServiceAbility的设备id,缺省表示连接本地的ServiceAbility |
| bundleName   | 只读     | string   | 是   | 表示被连接的ServiceAbility的包名                                   |
| abilityName  | 只读     | string   | 是   | 表示被连接的ServiceAbility的类名                                   |

Z
zengyawen 已提交
463
**ConnectOptions类型说明:**
X
xuchenghua09 已提交
464 465 466 467 468 469 470

| 名称         | 读写属性 | 类型     | 必填 | 描述                               |
| ------------ | -------- | -------- | ---- | ---------------------------------- |
| onConnect    | 只读     | function | 是   | 连接成功时的回调函数               |
| onDisconnect | 只读     | function | 是   | 连接失败时的回调函数               |
| onFailed     | 只读     | function | 是   | ConnectAbility调用失败时的回调函数 |

Z
zengyawen 已提交
471 472 473 474
**返回值:**
| 类型   | 说明                     |
| ------ | ------------------------ |
| number | 连接的ServiceAbilityID。 |
X
xuchenghua09 已提交
475

Z
zengyawen 已提交
476
**示例:**
X
xuchenghua09 已提交
477 478 479 480 481 482 483 484 485 486 487 488 489 490

```javascript
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(
    {
491
        deviceId: deviceId,
X
xuchenghua09 已提交
492 493 494 495 496 497 498 499 500 501 502
        bundleName: "com.ix.ServiceAbility",
        abilityName: "ServiceAbilityA",
    },
    {
        onConnect: onConnectCallback,
        onDisconnect: onDisconnectCallback,
        onFailed: onFailedCallback,
    },
);
```

Z
zengyawen 已提交
503
## featureAbility.disconnectAbility
X
xuchenghua09 已提交
504

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

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

Z
zengyawen 已提交
509
**参数:**
X
xuchenghua09 已提交
510

Z
zengyawen 已提交
511 512 513 514
| 名称       | 类型          | 必填 | 描述                           |
| ---------- | ------------- | ---- | ------------------------------ |
| connection | number        | 是   | 指定断开连接的ServiceAbilityID |
| callback   | AsyncCallback\<void> | 是   | 被指定的回调方法               |
X
xuchenghua09 已提交
515

Z
zengyawen 已提交
516
**示例:**
X
xuchenghua09 已提交
517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546

```javascript
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) => {
    console.log('featureAbilityTest DisConnectJsSameBundleName result errCode : ' + error.code + " data: " + data)
    },
);
```

Z
zengyawen 已提交
547
## featureAbility.disconnectAbility
X
xuchenghua09 已提交
548

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

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

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

Z
zengyawen 已提交
555 556 557
| 名称       | 类型   | 必填 | 描述                           |
| ---------- | ------ | ---- | ------------------------------ |
| connection | number | 是   | 指定断开连接的ServiceAbilityID |
X
xuchenghua09 已提交
558

Z
zengyawen 已提交
559 560 561 562
**返回值:**
| 类型           | 说明                    |
| -------------- | ----------------------- |
| Promise\<void> | 以Promise形式返回结果。 |
X
xuchenghua09 已提交
563

Z
zengyawen 已提交
564
**示例:**
X
xuchenghua09 已提交
565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590

```javascript
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 = await featureAbility.disconnectAbility(connId);
```

Z
zengyawen 已提交
591
## featureAbility.continueAbility
592

Z
zengyawen 已提交
593
continueAbility(options: ContinueAbilityOptions, callback: AsyncCallback\<void>): void
594

Z
zengyawen 已提交
595
迁移一个ability到目标设备,并返回执行结果(callback形式)。
596

Z
zengyawen 已提交
597
**参数:**
598

Z
zengyawen 已提交
599 600 601 602
| 名称     | 类型                   | 必填 | 描述                |
| -------- | ---------------------- | ---- | ------------------- |
| options  | ContinueAbilityOptions | 是   | 表示被启动的Ability |
| callback | AsyncCallback\<void>   | 是   | 被指定的回调方法    |
603

Z
zengyawen 已提交
604
**ContinueAbilityOptions类型说明:**
605

Z
zengyawen 已提交
606 607 608 609
| 名称       | 读写属性 | 类型    | 必填 | 描述                                                         |
| ---------- | -------- | ------- | ---- | ------------------------------------------------------------ |
| deviceId   | 只读     | string  | 是   | 表示需要包含有关目标启动能力的信息。                         |
| reversible | 只读     | boolean | 是   | 是否支持回迁的标志,目前不支持该功能,为保留字段,可填false。 |
610

Z
zengyawen 已提交
611
**示例:**
612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630

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

async StartContinueAbility(deviceId) {
    let continueAbilityOptions = {
        reversible: false,
        deviceId: deviceId,
    }
    function ContinueAbilityCallback(err, data) {
        console.info("[Demo] ContinueAbilityCallback, result err = " + JSON.stringify(err));
        console.info("[Demo] ContinueAbilityCallback, result data= " + JSON.stringify(data));
    }
    await featureAbility.continueAbility(continueAbilityOptions, ContinueAbilityCallback);
    console.info('[Demo] featureAbility.StartContinueAbility end');
}
this.StartContinueAbility(remoteDeviceId); //remoteDeviceId is acquired from DeviceManager
```

Z
zengyawen 已提交
631
## AbilityResult
X
xuchenghua09 已提交
632 633 634 635

| 名称       | 读写属性 | 类型                  | 必填 | 描述                                                         |
| ---------- | -------- | --------------------- | ---- | ------------------------------------------------------------ |
| resultCode | 只读     | number                | 是   | 指示销毁该能力后返回的结果代码。您可以定义结果代码来识别错误(暂不支持) |
636
| want       | 只读     | [Want](#want) | 否   | 指示销毁该能力后返回的数据。您可以定义返回的数据。此参数可以为null。 |
X
xuchenghua09 已提交
637

Z
zengyawen 已提交
638
## StartAbilityParameter
X
xuchenghua09 已提交
639

Z
zengyawen 已提交
640 641 642 643
| 名称                | 读写属性 | 类型                 | 必填 | 描述                                                         |
| ------------------- | -------- | -------------------- | ---- | ------------------------------------------------------------ |
| want                | 只读     | [Want](#want)        | 是   | 表示需要包含有关目标启动能力的信息。                         |
| abilityStartSetting | 只读     | {[key: string]: any} | 否   | 表示能力的特殊属性,当开发者启动能力时,该属性可以作为调用中的输入参数传递。 |
X
xuchenghua09 已提交
644

Z
zengyawen 已提交
645
## Want
X
xuchenghua09 已提交
646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669

| 名称        | 读写属性 | 类型                 | 必填 | 描述                                                         |
| ----------- | -------- | -------------------- | ---- | ------------------------------------------------------------ |
| deviceId    | 只读     | string               | 否   | 表示运行指定Ability的设备ID。                                |
| bundleName  | 只读     | string               | 否   | 表示包描述。如果在Want中同时指定了BundleName和AbilityName,则Want可以直接匹配到指定的Ability。 |
| abilityName | 只读     | string               | 否   | 表示待启动的Ability名称。如果在Want中同时指定了BundleName和AbilityName,则Want可以直接匹配到指定的Ability。 |
| uri         | 只读     | string               | 否   | 表示Uri描述。如果在Want中指定了Uri,则Want将匹配指定的Uri信息,包括scheme, schemeSpecificPart, authority和path信息。 |
| type        | 只读     | string               | 否   | 表示MIME type类型描述,比如:"text/plain" 、 "image/*"等。   |
| flags       | 只读     | number               | 否   | 表示处理Want的方式。默认传数字,具体参考:[flags说明](#flags说明)。 |
| action      | 只读     | string               | 否   | 表示action选项描述。                                         |
| parameters  | 只读     | {[key: string]: any} | 否   | 表示WantParams描述。                                         |
| entities    | 只读     | Array\<string>       | 否   | 表示entities相关描述。                                       |

## flags说明

| 名称                                 | 参数       | 描述                                                         |
| ------------------------------------ | ---------- | ------------------------------------------------------------ |
| 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 | 指定是否启动某个能力                                         |
| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权                                    |
W
wusongqing 已提交
670
| FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 指示对URI前缀进行授权的权限                                           |
X
xuchenghua09 已提交
671 672 673 674 675 676 677 678 679
| FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动                             |
| FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能   |
| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示迁移是可拉回的。                                         |
| FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能                           |
| FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,使用后台模式安装该功能。                         |
| FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Want}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 |
| FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                         |
| FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |