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

3 4 5
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

Z
zengyawen 已提交
6
## 使用限制
X
xuchenghua09 已提交
7 8 9

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

Z
zengyawen 已提交
10
## 导入模块
X
xuchenghua09 已提交
11 12 13 14 15

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

Z
zengyawen 已提交
16
## featureAbility.startAbility
X
xuchenghua09 已提交
17

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

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

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

Z
zengyawen 已提交
24
**参数:**
X
xuchenghua09 已提交
25

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

Z
zengyawen 已提交
31
**示例:**
X
xuchenghua09 已提交
32 33 34

```javascript
import featureAbility from '@ohos.ability.featureAbility'
35
import wantConstant from '@ohos.ability.wantConstant'
X
xuchenghua09 已提交
36 37 38 39 40 41 42
featureAbility.startAbility(
        {
        want:
        {
            action: "",
            entities: [""],
            type: "",
43
            flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
X
xuchenghua09 已提交
44 45 46 47 48 49
            deviceId: "",
            bundleName: "com.example.startability",
            abilityName: "com.example.startability.MainAbility",
            uri: ""
        },
    },
50
);
X
xuchenghua09 已提交
51 52 53 54
```



Z
zengyawen 已提交
55
## featureAbility.startAbility
X
xuchenghua09 已提交
56

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

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

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

Z
zengyawen 已提交
63
**参数:**
X
xuchenghua09 已提交
64

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

Z
zengyawen 已提交
69
**示例:**
X
xuchenghua09 已提交
70 71 72

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

93
## featureAbility.acquireDataAbilityHelper<sup>7+</sup>
X
xuchenghua09 已提交
94

Z
zengyawen 已提交
95
acquireDataAbilityHelper(uri: string): DataAbilityHelper
X
xuchenghua09 已提交
96

Z
zengyawen 已提交
97
获取dataAbilityHelper。
X
xuchenghua09 已提交
98

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

Z
zengyawen 已提交
101
**参数:**
X
xuchenghua09 已提交
102

Z
zengyawen 已提交
103 104 105
| 名称 | 类型   | 必填 | 描述                     |
| ---- | ------ | ---- | ------------------------ |
| uri  | string | 是   | 指示要打开的文件的路径。 |
X
xuchenghua09 已提交
106

Z
zengyawen 已提交
107
**返回值:**
X
xuchenghua09 已提交
108

Z
zengyawen 已提交
109 110 111
| 类型              | 说明                                         |
| ----------------- | -------------------------------------------- |
| DataAbilityHelper | 用来协助其他Ability访问DataAbility的工具类。 |
X
xuchenghua09 已提交
112

Z
zengyawen 已提交
113
**示例:**
X
xuchenghua09 已提交
114 115 116 117

```javascript
import featureAbility from '@ohos.ability.featureAbility'
featureAbility.acquireDataAbilityHelper(
Y
yuyaozhi 已提交
118
    "dataability:///com.example.DataAbility"
X
xuchenghua09 已提交
119 120 121
)
```

122
## featureAbility.startAbilityForResult<sup>7+</sup>
X
xuchenghua09 已提交
123

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

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

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

Z
zengyawen 已提交
130
**参数:**
X
xuchenghua09 已提交
131

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

Z
zengyawen 已提交
137
**示例:**
X
xuchenghua09 已提交
138 139 140

```javascript
import featureAbility from '@ohos.ability.featureability';
141
import wantConstant from '@ohos.ability.wantConstant'
X
xuchenghua09 已提交
142 143 144 145 146 147 148
featureAbility.startAbilityForResult(
   {
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
149
            flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
X
xuchenghua09 已提交
150 151 152 153 154 155 156 157 158
            deviceId: "",
            bundleName: "com.example.featureabilitytest",
            abilityName: "com.example.featureabilitytest.MainAbility",
            uri:""
        },
    },
)
```

159
## featureAbility.startAbilityForResult<sup>7+</sup>
X
xuchenghua09 已提交
160

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

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

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

Z
zengyawen 已提交
167
**参数:**
X
xuchenghua09 已提交
168

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

Z
zengyawen 已提交
173
**返回值:**
Y
yuyaozhi 已提交
174

Z
zengyawen 已提交
175 176 177
| 类型                                      | 说明           |
| ----------------------------------------- | -------------- |
| Promise\<[AbilityResult](#abilityresult)> | 返回执行结果。 |
X
xuchenghua09 已提交
178

Z
zengyawen 已提交
179
**示例:**
X
xuchenghua09 已提交
180 181 182

```javascript
import featureAbility from '@ohos.ability.featureability';
183
import wantConstant from '@ohos.ability.wantConstant'
X
xuchenghua09 已提交
184 185 186 187 188 189 190
featureAbility.startAbilityForResult(
    {
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
191
            flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
X
xuchenghua09 已提交
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
            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,
    },
210
).then((data) => {
X
xuchenghua09 已提交
211 212 213 214
    console.info("==========================>startAbilityForResult=======================>");
});
```

215
## featureAbility.terminateSelfWithResult<sup>7+</sup>
X
xuchenghua09 已提交
216

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

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

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

Z
zengyawen 已提交
223
**参数:**
X
xuchenghua09 已提交
224

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

Z
zengyawen 已提交
230
**示例:**
X
xuchenghua09 已提交
231 232 233

```javascript
import featureAbility from '@ohos.ability.featureAbility'
234
import wantConstant from '@ohos.ability.wantConstant'
X
xuchenghua09 已提交
235 236 237 238 239 240 241 242
featureAbility.terminateSelfWithResult(
    {
        resultCode: 1,
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
243
            flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
X
xuchenghua09 已提交
244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
            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,
            }
        },
    },
);
```

263
## featureAbility.terminateSelfWithResult<sup>7+</sup>
X
xuchenghua09 已提交
264

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

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

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

Z
zengyawen 已提交
271
**参数:**
X
xuchenghua09 已提交
272

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

Z
zengyawen 已提交
277
**返回值:**
Y
yuyaozhi 已提交
278

Z
zengyawen 已提交
279 280 281
| 类型           | 说明                    |
| -------------- | ----------------------- |
| Promise\<void> | 以Promise形式返回结果。 |
X
xuchenghua09 已提交
282

Z
zengyawen 已提交
283
**示例:**
X
xuchenghua09 已提交
284 285 286

```javascript
import featureAbility from '@ohos.ability.featureability';
287
import wantConstant from '@ohos.ability.wantConstant'
X
xuchenghua09 已提交
288 289 290 291 292 293 294 295
featureAbility.terminateSelfWithResult(
    {
        resultCode: 1,
        want:
        {
            action: "action.system.home",
            entities: ["entity.system.home"],
            type: "MIMETYPE",
296
            flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
X
xuchenghua09 已提交
297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
            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,
            }
        },
    }
313
).then((data) => {
X
xuchenghua09 已提交
314 315 316 317 318 319
    console.info("==========================>terminateSelfWithResult=======================>");
});
```



320
## featureAbility.hasWindowFocus<sup>7+<sup>
X
xuchenghua09 已提交
321

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

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

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

Z
zengyawen 已提交
328
**参数:**
X
xuchenghua09 已提交
329

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

Z
zengyawen 已提交
334
**示例:**
X
xuchenghua09 已提交
335 336 337 338 339 340 341 342

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



343
## featureAbility.hasWindowFocus<sup>7+<sup>
X
xuchenghua09 已提交
344

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

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

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

Z
zengyawen 已提交
351
**返回值:**
X
xuchenghua09 已提交
352

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

Z
zengyawen 已提交
357
**示例:**
X
xuchenghua09 已提交
358 359 360

```javascript
import featureAbility from '@ohos.ability.featureability';
361
featureAbility.hasWindowFocus().then((data) => {
X
xuchenghua09 已提交
362 363 364 365 366 367
    console.info("==========================>hasWindowFocus=======================>");
});
```



Z
zengyawen 已提交
368
## featureAbility.getWant
X
xuchenghua09 已提交
369

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

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

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

Z
zengyawen 已提交
376
**参数:**
X
xuchenghua09 已提交
377

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

Z
zengyawen 已提交
382
**示例:**
X
xuchenghua09 已提交
383 384 385 386 387 388 389 390

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



Z
zengyawen 已提交
391
## featureAbility.getWant
X
xuchenghua09 已提交
392

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

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

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

Z
zengyawen 已提交
399
**返回值:**
Y
yuyaozhi 已提交
400

Z
zengyawen 已提交
401 402 403
| 类型                    | 说明                      |
| ----------------------- | ------------------------- |
| Promise\<[Want](#want)> | 以Promise的形式返回结果。 |
X
xuchenghua09 已提交
404

Z
zengyawen 已提交
405
**示例:**
X
xuchenghua09 已提交
406 407 408

```javascript
import featureAbility from '@ohos.ability.featureability';
409
featureAbility.getWant().then((data) => {
X
xuchenghua09 已提交
410 411 412 413
		console.info("==========================>getWantCallBack=======================>");
});
```

Z
zengyawen 已提交
414
## featureAbility.getContext
X
xuchenghua09 已提交
415

Z
zengyawen 已提交
416
getContext(): Context
X
xuchenghua09 已提交
417

Z
zengyawen 已提交
418
获取应用上下文。
X
xuchenghua09 已提交
419

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

Z
zengyawen 已提交
422
**返回值:**
Y
yuyaozhi 已提交
423

Z
zengyawen 已提交
424 425 426
| 类型    | 说明                 |
| ------- | -------------------- |
| Context | 返回应用程序上下文。 |
X
xuchenghua09 已提交
427

Z
zengyawen 已提交
428
**示例:**
X
xuchenghua09 已提交
429 430 431 432 433 434 435 436 437

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



438
## featureAbility.terminateSelf<sup>7+</sup>
X
xuchenghua09 已提交
439

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

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

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

Z
zengyawen 已提交
446
**参数:**
X
xuchenghua09 已提交
447

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

Z
zengyawen 已提交
452
**示例:**
X
xuchenghua09 已提交
453 454 455 456 457 458 459 460

```javascript
import featureAbility from '@ohos.ability.featureability';
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

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

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

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

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

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

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

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

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

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

Z
zengyawen 已提交
498
**Want类型说明:**
499

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

502 503
| 名称         | 读写属性  | 类型     | 必填 | 描述                                                              |
| ------------ | -------- | -------- | ---- | ----------------------------------                               |
ahjxliubao2's avatar
ahjxliubao2 已提交
504 505 506
| deviceId     | 只读     | string   | 否   | 表示被连接的ServiceAbility的设备id,缺省表示连接本地的ServiceAbility。 |
| bundleName   | 只读     | string   | 是   | 表示被连接的ServiceAbility的包名。                                   |
| abilityName  | 只读     | string   | 是   | 表示被连接的ServiceAbility的类名。                                   |
507

Z
zengyawen 已提交
508
**ConnectOptions类型说明:**
X
xuchenghua09 已提交
509

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

X
xuchenghua09 已提交
512 513
| 名称         | 读写属性 | 类型     | 必填 | 描述                               |
| ------------ | -------- | -------- | ---- | ---------------------------------- |
ahjxliubao2's avatar
ahjxliubao2 已提交
514 515 516
| onConnect    | 只读     | function | 是   | 连接成功时的回调函数。               |
| onDisconnect | 只读     | function | 是   | 连接失败时的回调函数。               |
| onFailed     | 只读     | function | 是   | ConnectAbility调用失败时的回调函数。 |
X
xuchenghua09 已提交
517

Z
zengyawen 已提交
518
**返回值:**
Y
yuyaozhi 已提交
519

Z
zengyawen 已提交
520 521 522
| 类型   | 说明                     |
| ------ | ------------------------ |
| number | 连接的ServiceAbilityID。 |
X
xuchenghua09 已提交
523

Z
zengyawen 已提交
524
**示例:**
X
xuchenghua09 已提交
525 526

```javascript
H
hanhaibin 已提交
527
import rpc from '@ohos.rpc'
X
xuchenghua09 已提交
528 529 530 531 532 533 534 535 536 537 538 539
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(
    {
540
        deviceId: "",
X
xuchenghua09 已提交
541 542 543 544 545 546 547 548 549 550 551
        bundleName: "com.ix.ServiceAbility",
        abilityName: "ServiceAbilityA",
    },
    {
        onConnect: onConnectCallback,
        onDisconnect: onDisconnectCallback,
        onFailed: onFailedCallback,
    },
);
```

552
## featureAbility.disconnectAbility<sup>7+</sup>
X
xuchenghua09 已提交
553

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

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

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

Z
zengyawen 已提交
560
**参数:**
X
xuchenghua09 已提交
561

Z
zengyawen 已提交
562 563 564 565
| 名称       | 类型          | 必填 | 描述                           |
| ---------- | ------------- | ---- | ------------------------------ |
| connection | number        | 是   | 指定断开连接的ServiceAbilityID |
| callback   | AsyncCallback\<void> | 是   | 被指定的回调方法               |
X
xuchenghua09 已提交
566

Z
zengyawen 已提交
567
**示例:**
X
xuchenghua09 已提交
568 569

```javascript
H
hanhaibin 已提交
570
import rpc from '@ohos.rpc'
X
xuchenghua09 已提交
571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598
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)
    },
);
```

599
## featureAbility.disconnectAbility<sup>7+</sup>
X
xuchenghua09 已提交
600

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

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

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

Z
zengyawen 已提交
607
**参数:**
X
xuchenghua09 已提交
608

Z
zengyawen 已提交
609 610 611
| 名称       | 类型   | 必填 | 描述                           |
| ---------- | ------ | ---- | ------------------------------ |
| connection | number | 是   | 指定断开连接的ServiceAbilityID |
X
xuchenghua09 已提交
612

Z
zengyawen 已提交
613
**返回值:**
Y
yuyaozhi 已提交
614

Z
zengyawen 已提交
615 616 617
| 类型           | 说明                    |
| -------------- | ----------------------- |
| Promise\<void> | 以Promise形式返回结果。 |
X
xuchenghua09 已提交
618

Z
zengyawen 已提交
619
**示例:**
X
xuchenghua09 已提交
620 621

```javascript
H
hanhaibin 已提交
622
import rpc from '@ohos.rpc'
X
xuchenghua09 已提交
623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643
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 已提交
644 645 646 647

featureAbility.disconnectAbility(connId).then((error,data)=>{
    console.log('featureAbilityTest result errCode : ' + error.code + " data: " + data);
});
X
xuchenghua09 已提交
648 649
```

650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 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 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759

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

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

获取当前技能对应的窗口(callback形式)。

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

**参数:**

| 名称     | 类型                    | 必填 | 描述                                                         |
| -------- | ----------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback\<window.Window> | 是   | 返回与当前能力对应的窗口。 |

**示例:**

```javascript
GetWindow(){
        featureAbility.getWindow()
    }
```

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

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

获取当前技能对应的窗口(Promise形式)。

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

**返回值:**

| 类型              | 说明                                                       |
| ----------------- | ---------------------------------------------------------- |
| Promise\<window.Window> | 返回与当前能力对应的窗口。 |

**示例:**

```javascript
GetWindowPromise(){
        featureAbility.getWindow().then((data) => {
            console.info("=============getWindowPromise========== " + JSON.stringify(data));
        });
    }
```


## AbilityWindowConfiguration

使用时通过featureAbility.AbilityWindowConfiguration获取。

**示例:**

```
featureAbility.AbilityWindowConfiguration.WINDOW_MODE_UNDEFINED。 
```

| 名称                        | 参数 | 描述       |
| --------------------------- | ---- | ---------- |
| WINDOW_MODE_UNDEFINED<sup>7+</sup>       | 0    | 未定义。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel   |
| WINDOW_MODE_FULLSCREEN<sup>7+</sup>      | 1    | 全屏。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel     |
| WINDOW_MODE_SPLIT_PRIMARY<sup>7+</sup>   | 100  | 分屏主屏。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel |
| WINDOW_MODE_SPLIT_SECONDARY<sup>7+</sup> | 101  | 分屏次屏。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel |
| WINDOW_MODE_FLOATING<sup>7+</sup>        | 102  | 悬浮窗。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel   |


## AbilityStartSetting

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

使用时通过featureAbility.AbilityStartSetting获取。

**示例:**

```
featureAbility.AbilityStartSetting.BOUNDS_KEY。 
```

| 名称            | 参数            | 描述                       |
| --------------- | --------------- | -------------------------- |
| BOUNDS_KEY<sup>7+</sup>       | "abilityBounds" | 窗口显示大小属性的名称。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel   |
| WINDOW_MODE_KEY<sup>7+</sup>  | "windowMode"    | 窗口显示模式属性的名称。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel   |
| DISPLAY_ID_KEY<sup>7+</sup>   | "displayId"     | 窗口显示设备ID属性的名称。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel |

## ErrorCode

获取错误代码。

| 变量                          | 值   | 说明                                                         |
| ----------------------------- | ---- | ------------------------------------------------------------ |
| NO_ERROR<sup>7+</sup>           | 0    | 没有错误。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel |
| INVALID_PARAMETER<sup>7+</sup>          | -1    | 无效的参数。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel |
| ABILITY_NOT_FOUND<sup>7+</sup>  | -2    | 找不到能力。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel |
| PERMISSION_DENY<sup>7+</sup>            | -3    | 拒绝许可。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel |


## DataAbilityOperationType

指示数据的操作类型。

| 变量                          | 值   | 说明                                                         |
| ----------------------------- | ---- | ------------------------------------------------------------ |
| TYPE_INSERT<sup>7+</sup>           | 1   | 插入类型。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel |
| TYPE_UPDATE<sup>7+</sup>          | 2  | 修改类型。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel |
| TYPE_DELETE<sup>7+</sup>  | 3    | 删除类型。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel |
| TYPE_ASSERT<sup>7+</sup>            | 4    | 声明类型。<br/>**系统能力**:SystemCapability.Ability.AbilityRuntime.FAModel |



Z
zengyawen 已提交
760
## AbilityResult
X
xuchenghua09 已提交
761

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

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

Z
zengyawen 已提交
769
## StartAbilityParameter
X
xuchenghua09 已提交
770

ahjxliubao2's avatar
ahjxliubao2 已提交
771 772
**系统能力**:以下各项对应的系统能力均为SystemCapability.AbilityRuntime.FAModel 

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

778

Z
zengyawen 已提交
779
## Want
X
xuchenghua09 已提交
780

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

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

## flags说明

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

X
xuchenghua09 已提交
799 800
| 名称                                 | 参数       | 描述                                                         |
| ------------------------------------ | ---------- | ------------------------------------------------------------ |
ahjxliubao2's avatar
ahjxliubao2 已提交
801 802 803 804 805 806 807 808
| 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上可能持久化的授权。                                    |
| FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 按照前缀匹配的方式验证URI权限。                                           |
Y
yuyaozhi 已提交
809
| FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动。                             |
ahjxliubao2's avatar
ahjxliubao2 已提交
810 811 812 813
| FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能。   |
| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示迁移是可拉回的。                                        |
| FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能。                           |
| FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,使用后台模式安装该功能。                         |
814
| FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给 **[ohos.app.Context](js-apis-ability-context.md)****startAbility**方法的**Want**设置此标志,并且必须与**flag_ABILITY_NEW_MISSION**一起使用。 |
ahjxliubao2's avatar
ahjxliubao2 已提交
815 816
| FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                         |
| FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
X
xuchenghua09 已提交
817