js-apis-featureAbility.md 33.3 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 330 331
    console.info("==========================>terminateSelfWithResult=======================>");
});
```



332
## featureAbility.hasWindowFocus<sup>7+<sup>
X
xuchenghua09 已提交
333

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

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

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

Z
zengyawen 已提交
340
**参数:**
X
xuchenghua09 已提交
341

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

Z
zengyawen 已提交
346
**示例:**
X
xuchenghua09 已提交
347 348

```javascript
Y
yuyaozhi 已提交
349
import featureAbility from '@ohos.ability.featureAbility';
X
xuchenghua09 已提交
350 351 352 353 354
featureAbility.hasWindowFocus()
```



355
## featureAbility.hasWindowFocus<sup>7+<sup>
X
xuchenghua09 已提交
356

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

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

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

Z
zengyawen 已提交
363
**返回值:**
X
xuchenghua09 已提交
364

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

Z
zengyawen 已提交
369
**示例:**
X
xuchenghua09 已提交
370 371

```javascript
Y
yuyaozhi 已提交
372
import featureAbility from '@ohos.ability.featureAbility';
373
featureAbility.hasWindowFocus().then((data) => {
X
xuchenghua09 已提交
374 375 376 377 378 379
    console.info("==========================>hasWindowFocus=======================>");
});
```



Z
zengyawen 已提交
380
## featureAbility.getWant
X
xuchenghua09 已提交
381

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

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

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

Z
zengyawen 已提交
388
**参数:**
X
xuchenghua09 已提交
389

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

Z
zengyawen 已提交
394
**示例:**
X
xuchenghua09 已提交
395 396

```javascript
Y
yuyaozhi 已提交
397
import featureAbility from '@ohos.ability.featureAbility';
X
xuchenghua09 已提交
398 399 400 401 402
featureAbility.getWant()
```



Z
zengyawen 已提交
403
## featureAbility.getWant
X
xuchenghua09 已提交
404

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

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

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

Z
zengyawen 已提交
411
**返回值:**
Y
yuyaozhi 已提交
412

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

Z
zengyawen 已提交
417
**示例:**
X
xuchenghua09 已提交
418 419

```javascript
Y
yuyaozhi 已提交
420
import featureAbility from '@ohos.ability.featureAbility';
421
featureAbility.getWant().then((data) => {
422
	console.info("==========================>getWantCallBack=======================>");
X
xuchenghua09 已提交
423 424 425
});
```

Z
zengyawen 已提交
426
## featureAbility.getContext
X
xuchenghua09 已提交
427

Z
zengyawen 已提交
428
getContext(): Context
X
xuchenghua09 已提交
429

Z
zengyawen 已提交
430
获取应用上下文。
X
xuchenghua09 已提交
431

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

Z
zengyawen 已提交
434
**返回值:**
Y
yuyaozhi 已提交
435

H
HelloCrease 已提交
436 437
| 类型      | 说明         |
| ------- | ---------- |
Z
zengyawen 已提交
438
| Context | 返回应用程序上下文。 |
X
xuchenghua09 已提交
439

Z
zengyawen 已提交
440
**示例:**
X
xuchenghua09 已提交
441 442

```javascript
Y
yuyaozhi 已提交
443
import featureAbility from '@ohos.ability.featureAbility';
X
xuchenghua09 已提交
444 445 446 447 448 449
var context = featureAbility.getContext()
context.getBundleName()
```



450
## featureAbility.terminateSelf<sup>7+</sup>
X
xuchenghua09 已提交
451

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

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

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

Z
zengyawen 已提交
458
**参数:**
X
xuchenghua09 已提交
459

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

Z
zengyawen 已提交
464
**示例:**
X
xuchenghua09 已提交
465 466

```javascript
Y
yuyaozhi 已提交
467
import featureAbility from '@ohos.ability.featureAbility';
X
xuchenghua09 已提交
468 469 470 471 472
featureAbility.terminateSelf()
```



473
## featureAbility.terminateSelf<sup>7+</sup>
X
xuchenghua09 已提交
474

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

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

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

Z
zengyawen 已提交
481
**返回值:**
Y
yuyaozhi 已提交
482

H
HelloCrease 已提交
483 484
| 类型             | 说明               |
| -------------- | ---------------- |
Z
zengyawen 已提交
485
| Promise\<void> | 以Promise的形式返回结果。 |
X
xuchenghua09 已提交
486

Z
zengyawen 已提交
487
**示例:**
X
xuchenghua09 已提交
488 489

```javascript
Y
yuyaozhi 已提交
490
import featureAbility from '@ohos.ability.featureAbility';
491 492
featureAbility.terminateSelf().then((data) => {
    console.info("==========================>terminateSelfCallBack=======================>");
X
xuchenghua09 已提交
493 494 495
});
```

496
## featureAbility.connectAbility<sup>7+</sup>
X
xuchenghua09 已提交
497

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

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

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

Z
zengyawen 已提交
504
**参数:**
X
xuchenghua09 已提交
505

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

511 512 513
## Want

want类型说明
514

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

H
HelloCrease 已提交
517 518 519 520 521
| 名称          | 读写属性 | 类型     | 必填   | 描述                                       |
| ----------- | ---- | ------ | ---- | ---------------------------------------- |
| deviceId    | 只读   | string | 否    | 表示被连接的ServiceAbility的设备id,缺省表示连接本地的ServiceAbility。 |
| bundleName  | 只读   | string | 是    | 表示被连接的ServiceAbility的包名。                 |
| abilityName | 只读   | string | 是    | 表示被连接的ServiceAbility的类名。                 |
522

523 524 525
## ConnectOptions

ConnectOptions类型说明
X
xuchenghua09 已提交
526

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

H
HelloCrease 已提交
529 530 531 532 533
| 名称           | 读写属性 | 类型       | 必填   | 描述                        |
| ------------ | ---- | -------- | ---- | ------------------------- |
| onConnect    | 只读   | function | 是    | 连接成功时的回调函数。               |
| onDisconnect | 只读   | function | 是    | 连接失败时的回调函数。               |
| onFailed     | 只读   | function | 是    | ConnectAbility调用失败时的回调函数。 |
X
xuchenghua09 已提交
534

Z
zengyawen 已提交
535
**返回值:**
Y
yuyaozhi 已提交
536

H
HelloCrease 已提交
537 538
| 类型     | 说明                   |
| ------ | -------------------- |
Z
zengyawen 已提交
539
| number | 连接的ServiceAbilityID。 |
X
xuchenghua09 已提交
540

Z
zengyawen 已提交
541
**示例:**
X
xuchenghua09 已提交
542 543

```javascript
H
hanhaibin 已提交
544
import rpc from '@ohos.rpc'
X
xuchenghua09 已提交
545 546 547 548 549 550 551 552 553 554 555 556
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(
    {
557
        deviceId: "",
X
xuchenghua09 已提交
558 559 560 561 562 563 564 565 566 567 568
        bundleName: "com.ix.ServiceAbility",
        abilityName: "ServiceAbilityA",
    },
    {
        onConnect: onConnectCallback,
        onDisconnect: onDisconnectCallback,
        onFailed: onFailedCallback,
    },
);
```

569
## featureAbility.disconnectAbility<sup>7+</sup>
X
xuchenghua09 已提交
570

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

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

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

Z
zengyawen 已提交
577
**参数:**
X
xuchenghua09 已提交
578

H
HelloCrease 已提交
579 580 581 582
| 名称         | 类型                   | 必填   | 描述                      |
| ---------- | -------------------- | ---- | ----------------------- |
| connection | number               | 是    | 指定断开连接的ServiceAbilityID |
| callback   | AsyncCallback\<void> | 是    | 被指定的回调方法                |
X
xuchenghua09 已提交
583

Z
zengyawen 已提交
584
**示例:**
X
xuchenghua09 已提交
585 586

```javascript
H
hanhaibin 已提交
587
import rpc from '@ohos.rpc'
X
xuchenghua09 已提交
588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610
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) => {
611
        console.log('featureAbilityTest DisConnectJsSameBundleName result errCode : ' + error.code + " data: " + data)
X
xuchenghua09 已提交
612 613 614 615
    },
);
```

616
## featureAbility.disconnectAbility<sup>7+</sup>
X
xuchenghua09 已提交
617

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

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

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

Z
zengyawen 已提交
624
**参数:**
X
xuchenghua09 已提交
625

H
HelloCrease 已提交
626 627 628
| 名称         | 类型     | 必填   | 描述                      |
| ---------- | ------ | ---- | ----------------------- |
| connection | number | 是    | 指定断开连接的ServiceAbilityID |
X
xuchenghua09 已提交
629

Z
zengyawen 已提交
630
**返回值:**
Y
yuyaozhi 已提交
631

H
HelloCrease 已提交
632 633
| 类型             | 说明              |
| -------------- | --------------- |
Z
zengyawen 已提交
634
| Promise\<void> | 以Promise形式返回结果。 |
X
xuchenghua09 已提交
635

Z
zengyawen 已提交
636
**示例:**
X
xuchenghua09 已提交
637 638

```javascript
H
hanhaibin 已提交
639
import rpc from '@ohos.rpc'
X
xuchenghua09 已提交
640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660
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 已提交
661

Y
yuyaozhi 已提交
662 663 664 665
featureAbility.disconnectAbility(connId).then((data) => {
    console.log('data : '  + data);
}).catch((error)=>{
    console.log('featureAbilityTest result errCode : ' + error.code);
ahjxliubao2's avatar
ahjxliubao2 已提交
666
});
X
xuchenghua09 已提交
667 668
```

669 670 671 672 673

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

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

674
获取当前Ability对应的窗口(callback形式)。
675 676 677 678 679

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

**参数:**

680 681 682
| 名称     | 类型                          | 必填 | 描述                          |
| -------- | ----------------------------- | ---- | ----------------------------- |
| callback | AsyncCallback\<window.Window> | 是   | 返回与当前Ability对应的窗口。 |
683 684 685 686

**示例:**

```javascript
H
HelloCrease 已提交
687
featureAbility.getWindow()
688 689 690 691 692 693
```

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

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

694
获取当前Ability对应的窗口(Promise形式)。
695 696 697 698 699

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

**返回值:**

700 701 702
| 类型                    | 说明                          |
| ----------------------- | ----------------------------- |
| Promise\<window.Window> | 返回与当前Ability对应的窗口。 |
703 704 705 706

**示例:**

```javascript
H
HelloCrease 已提交
707
featureAbility.getWindow().then((data) => {
708
  console.info("=============getWindowPromise========== " +  JSON.stringify(data)); 
H
HelloCrease 已提交
709
});
710 711
```

712 713 714 715 716 717 718 719 720 721
## ConnectOptions.onConnect<sup>7+</sup>

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

连接成功时的回调函数。

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

**参数:**

H
HelloCrease 已提交
722 723 724 725
| 名称          | 类型                | 必填   | 描述       |
| ----------- | ----------------- | ---- | -------- |
| elementName | ElementName       | 是    | 元素名。     |
| remote      | rpc.IRemoteObject | 是    | rpc远程对象。 |
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 760 761 762 763 764

**示例:**

```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 已提交
765 766 767
| 名称          | 类型          | 必填   | 描述   |
| ----------- | ----------- | ---- | ---- |
| elementName | ElementName | 是    | 元素名。 |
768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806

**示例:**

```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 已提交
807 808 809
| 名称   | 类型     | 必填   | 描述        |
| ---- | ------ | ---- | --------- |
| code | number | 是    | number类型。 |
810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841

**示例:**

```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,
    },
);
```




842 843 844 845 846 847 848 849

## AbilityWindowConfiguration

使用时通过featureAbility.AbilityWindowConfiguration获取。

**示例:**

```
850
featureAbility.AbilityWindowConfiguration.WINDOW_MODE_UNDEFINED
851 852
```

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

H
HelloCrease 已提交
855 856
| 名称                                       | 参数   | 描述                                       |
| ---------------------------------------- | ---- | ---------------------------------------- |
857 858 859 860 861
| 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  | 悬浮窗。 |
862 863 864 865 866 867 868 869 870 871 872


## AbilityStartSetting

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

使用时通过featureAbility.AbilityStartSetting获取。

**示例:**

```
873
featureAbility.AbilityStartSetting.BOUNDS_KEY
874 875
```

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

H
HelloCrease 已提交
878 879
| 名称                           | 参数              | 描述                                       |
| ---------------------------- | --------------- | ---------------------------------------- |
880 881 882
| BOUNDS_KEY<sup>7+</sup>      | "abilityBounds" | 窗口显示大小属性的名称。 |
| WINDOW_MODE_KEY<sup>7+</sup> | "windowMode"    | 窗口显示模式属性的名称。|
| DISPLAY_ID_KEY<sup>7+</sup>  | "displayId"     | 窗口显示设备ID属性的名称。 |
883 884 885 886 887

## ErrorCode

获取错误代码。

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

H
HelloCrease 已提交
890 891
| 变量                             | 值    | 说明                                       |
| ------------------------------ | ---- | ---------------------------------------- |
892 893 894 895
| 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   | 拒绝许可。 |
896 897 898 899 900 901


## DataAbilityOperationType

指示数据的操作类型。

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

H
HelloCrease 已提交
904 905
| 变量                       | 值    | 说明                                       |
| ------------------------ | ---- | ---------------------------------------- |
906 907 908 909
| TYPE_INSERT<sup>7+</sup> | 1    | 插入类型。 |
| TYPE_UPDATE<sup>7+</sup> | 2    | 修改类型。 |
| TYPE_DELETE<sup>7+</sup> | 3    | 删除类型。 |
| TYPE_ASSERT<sup>7+</sup> | 4    | 声明类型。 |
910 911 912



Z
zengyawen 已提交
913
## AbilityResult
X
xuchenghua09 已提交
914

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

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

Z
zengyawen 已提交
922
## StartAbilityParameter
X
xuchenghua09 已提交
923

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

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

## flags说明

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

H
HelloCrease 已提交
935 936 937 938 939 940 941 942
| 名称                                   | 参数         | 描述                                       |
| ------------------------------------ | ---------- | ---------------------------------------- |
| 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 | 指定是否启动某个能力。                              |
943 944
| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。                          |
| FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 按照前缀匹配的方式验证URI权限。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。                        |
H
HelloCrease 已提交
945
| FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动。                        |
946
| FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能。<br>**系统API**: 此接口为系统接口,三方应用不支持调用。           |
H
HelloCrease 已提交
947 948 949
| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示迁移是可拉回的。                               |
| FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能。                       |
| FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,使用后台模式安装该功能。                       |
950
| FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给 **[ohos.app.Context](js-apis-ability-context.md)****startAbility**方法的**Want**设置此标志,并且必须与**flag_ABILITY_NEW_MISSION**一起使用。 |
H
HelloCrease 已提交
951
| FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                       |
ahjxliubao2's avatar
ahjxliubao2 已提交
952
| FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
X
xuchenghua09 已提交
953