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