• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ParticleAbility模块(JS端SDK接口)
2
3#### 支持设备
4
5| API                                                          | 手机 | 平板 | 智慧屏 | 智能穿戴 | 轻量级智能穿戴 | 智慧视觉设备 |
6| ------------------------------------------------------------ | ---- | ---- | ------ | -------- | -------------- | ------------ |
7| ParticleAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<void> | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
8| ParticleAbility.startAbility(parameter: StartAbilityParameter) | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
9| ParticleAbility.terminateSelf(callback: AsyncCallback\<void>) | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
10| ParticleAbility.terminateSelf()                              | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
11| ParticleAbility.acquireDataAbilityHelper(uri: string)        | 支持 | 支持 | 支持   | 支持     | 不支持         | 不支持       |
12
13#### 权限列表
14
15ohos.permission.RUNNING_LOCK permission
16
17#### 使用限制
18
19ParticleAbility模块的接口只能在Ability为Data和Service类型的时候进行调用
20
21#### 导入模块
22
23```
24import featureAbility from '@ohos.ability.featureAbility'
25```
26
27#### ParticleAbility.startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<void>
28
29- 接口说明
30
31  服务ability使用此方法启动特定ability(callback形式)
32
33- startAbility参数描述
34
35
36| 名称      | 读写属性 | 类型                  | 必填 | 描述              |
37| --------- | -------- | --------------------- | ---- | ----------------- |
38| parameter | 只读     | StartAbilityParameter | 是   | 指示启动的ability |
39| callback  | 只读     | AsyncCallback\<void>  | 是   | 被指定的回调方法  |
40
41- StartAbilityParameter类型说明
42
43| 名称                | 读写属性 | 类型   | 必填 | 描述                               |
44| ------------------- | -------- | ------ | ---- | ---------------------------------- |
45| want                | 只读     | want   | 是   | 表示需要包含有关目标启动能力的信息 |
46| abilityStartSetting | 只读     | string | 否   | 指示启动能力中使用的特殊启动设置   |
47
48- want类型说明
49
50| 名称        | 读写属性 | 类型   | 必填 | 描述                       |
51| ----------- | -------- | ------ | ---- | -------------------------- |
52| deviceId    | 只读     | string | 否   | 设备id                     |
53| bundleName  | 只读     | string | 否   | 捆绑包名称                 |
54| abilityName | 只读     | string | 否   | ability 名字               |
55| uri         | 只读     | string | 否   | 请求中URI的描述            |
56| type        | 只读     | string | 否   | 此文件中类型的说明         |
57| flags       | 只读     | number | 否   | 此文件中标志的选项是必需的 |
58| action      | 只读     | string | 否   | 需求中对操作的描述         |
59| parameters  | 只读     | string | 否   | Want中WantParams对象的描述 |
60| entities    | 只读     | string | 否   | 对象中实体的描述           |
61
62- flags类型说明
63
64  | 名称                                 | 参数       | 描述                                                         |
65  | ------------------------------------ | ---------- | ------------------------------------------------------------ |
66  | FLAG_AUTH_READ_URI_PERMISSION        | 0x00000001 | 指示对URI执行读取操作的授权                                  |
67  | FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | 指示对URI执行写入操作的授权                                  |
68  | FLAG_ABILITY_FORWARD_RESULT          | 0x00000004 | 将结果返回给源异能                                           |
69  | FLAG_ABILITY_CONTINUATION            | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备                 |
70  | FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | 指定组件是否不属于OHOS                                       |
71  | FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | 指定是否启动某个能力                                         |
72  | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权                                    |
73  | FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 将结果返回到源能力片                                         |
74  | FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动                             |
75  | FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能   |
76  | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。                                           |
77  | FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能                           |
78  | FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。                 |
79  | FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 |
80  | FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                         |
81  | FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
82
83- 返回值
84
85  void
86
87- 示例
88
89```js
90import particleAbility from '@ohos.ability.particleAbility'
91particleAbility.startAbility(
92	{
93        want:
94        {
95            action: "action.system.home",
96            entities: ["entity.system.home"],
97            type: "MIMETYPE",
98            flags: FLAG_AUTH_READ_URI_PERMISSION;
99            deviceId: "",
100            bundleName: "com.example.Data",
101            abilityName: "com.jstest.startabilitytest5.MainAbility",
102            uri:""
103        },
104    },
105)
106```
107
108
109
110#### ParticleAbility.startAbility(parameter: StartAbilityParameter)
111
112- 接口说明
113服务ability使用此方法启动特定ability((Promise形式)
114- startAbility参数描述
115
116
117| 名称      | 读写属性 | 类型                  | 必填 | 描述              |
118| --------- | -------- | --------------------- | ---- | ----------------- |
119| parameter | 只读     | StartAbilityParameter | 是   | 指示启动的ability |
120- StartAbilityParameter类型说明
121
122| 名称                | 读写属性 | 类型   | 必填 | 描述                               |
123| ------------------- | -------- | ------ | ---- | ---------------------------------- |
124| want                | 只读     | want   | 是   | 表示需要包含有关目标启动能力的信息 |
125| abilityStartSetting | 只读     | string | 否   | 指示启动能力中使用的特殊启动设置   |
126
127- want类型说明
128
129| 名称        | 读写属性 | 类型   | 必填 | 描述                       |
130| ----------- | -------- | ------ | ---- | -------------------------- |
131| deviceId    | 只读     | string | 否   | 设备id                     |
132| bundleName  | 只读     | string | 否   | 捆绑包名称                 |
133| abilityName | 只读     | string | 否   | ability 名字               |
134| uri         | 只读     | string | 否   | 请求中URI的描述            |
135| type        | 只读     | string | 否   | 此文件中类型的说明         |
136| flags       | 只读     | number | 否   | 此文件中标志的选项是必需的 |
137| action      | 只读     | string | 否   | 需求中对操作的描述         |
138| parameters  | 只读     | string | 否   | Want中WantParams对象的描述 |
139| entities    | 只读     | string | 否   | 对象中实体的描述           |
140
141- flags类型说明
142
143  | 名称                                 | 参数       | 描述                                                         |
144  | ------------------------------------ | ---------- | ------------------------------------------------------------ |
145  | FLAG_AUTH_READ_URI_PERMISSION        | 0x00000001 | 指示对URI执行读取操作的授权                                  |
146  | FLAG_AUTH_WRITE_URI_PERMISSION       | 0x00000002 | 指示对URI执行写入操作的授权                                  |
147  | FLAG_ABILITY_FORWARD_RESULT          | 0x00000004 | 将结果返回给源异能                                           |
148  | FLAG_ABILITY_CONTINUATION            | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备                 |
149  | FLAG_NOT_OHOS_COMPONENT              | 0x00000010 | 指定组件是否不属于OHOS                                       |
150  | FLAG_ABILITY_FORM_ENABLED            | 0x00000020 | 指定是否启动某个能力                                         |
151  | FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权                                    |
152  | FLAG_AUTH_PREFIX_URI_PERMISSION      | 0x00000080 | 将结果返回到源能力片                                         |
153  | FLAG_ABILITYSLICE_MULTI_DEVICE       | 0x00000100 | 支持分布式调度系统中的多设备启动                             |
154  | FLAG_START_FOREGROUND_ABILITY        | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能   |
155  | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示延续是可逆的。                                           |
156  | FLAG_INSTALL_ON_DEMAND               | 0x00000800 | 如果未安装指定的功能,请安装该功能                           |
157  | FLAG_INSTALL_WITH_BACKGROUND_MODE    | 0x80000000 | 如果未安装,请使用后台模式安装指定的DI功能。                 |
158  | FLAG_ABILITY_CLEAR_MISSION           | 0x00008000 | 指示清除其他任务的操作。可以为传递给{@link ohos.app.Context#startAbility}的{@code Intent}设置此标志,并且必须与{@link flag_ABILITY_NEW_MISSION}一起使用 |
159  | FLAG_ABILITY_NEW_MISSION             | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。                         |
160  | FLAG_ABILITY_MISSION_TOP             | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 |
161
162- 返回值
163
164  void
165
166- 示例
167
168```js
169import featureAbility from '@ohos.ability.featureAbility'
170import particleAbility from '@ohos.ability.particleAbility'
171var windowMode = featureAbility.AbilityStartSetting.WINDOW_MODE_KEY;
172particleAbility.startAbility(
173      want:
174       {
175            bundleName: "com.jstest.featureabilitytest",
176            abilityName: "com.jstest.startabilitytest1.MainAbility",
177            },
178            abilityStartSetting:
179        {
180            windowMode: featureAbility.AbilityWindowConfiguration.WINDOW_MODE_FLOATING,
181        },
182       }
183
184		).then((void) => {
185		console.info("==========================>startAbilityCallback=======================>");
186});
187```
188
189
190
191#### ParticleAbility.terminateSelf(callback: AsyncCallback\<void>)
192
193- 接口说明
194
195  摧毁服务ability(callback形式)
196
197- terminateSelf参数描述
198
199  | 名称     | 读写属性 | 类型                 | 必填 | 描述                 |
200  | -------- | -------- | -------------------- | ---- | -------------------- |
201  | callback | 只读     | AsyncCallback\<void> | 是   | 表示被指定的回调方法 |
202
203- 返回值
204
205  void
206
207- 示例
208
209```js
210import particleAbility from '@ohos.ability.particleAbility'
211ParticleAbility.terminateSelf()
212```
213
214
215
216#### ParticleAbility.terminateSelf()
217
218- 接口说明
219
220  摧毁服务ability(Promise形式)
221
222- 返回值
223
224  void
225
226- 示例
227
228```js
229import particleAbility from '@ohos.ability.particleAbility'
230particleAbility.terminateSelf().then((void) => {
231		console.info("==========================>terminateSelfCallback=======================>");
232});
233```
234
235
236
237#### ParticleAbility.acquireDataAbilityHelper(uri: string)
238
239- 接口说明
240
241  获取dataAbilityHelper
242
243- acquireDataAbilityHelper参数描述
244
245  | 名称 | 读写属性 | 类型   | 必填 | 描述                   |
246  | :--- | -------- | ------ | ---- | ---------------------- |
247  | uri  | 只读     | string | 是   | 指示要打开的文件的路径 |
248
249- 返回值
250
251  返回dataAbilityHelper
252
253- 示例
254
255```js
256import particleAbility from '@ohos.ability.particleAbility'
257var uri = "";
258ParticleAbility.acquireDataAbilityHelper(uri)
259```
260
261#### ParticleAbility.connectAbility(*request*: Want, *options*:ConnectOptions): number
262
263* 接口说明
264
265  将当前ability连接到指定ServiceAbility(callback形式)
266
267* connectAbility参数描述
268
269| 名称    | 读写属性 | 类型           | 必填 | 描述                       |
270| ------- | -------- | -------------- | ---- | -------------------------- |
271| request | 只读     | Want           | 是   | 表示被连接的ServiceAbility |
272| options | 只读     | ConnectOptions | 是   | 被指定的回调方法           |
273
274- ConnectOptions类型说明
275
276| 名称         | 读写属性 | 类型     | 必填 | 描述                               |
277| ------------ | -------- | -------- | ---- | ---------------------------------- |
278| onConnect    | 只读     | function | 是   | 连接成功时的回调函数               |
279| onDisconnect | 只读     | function | 是   | 连接失败时的回调函数               |
280| onFailed     | 只读     | function | 是   | ConnectAbility调用失败时的回调函数 |
281
282* 返回值
283
284  连接的ServiceAbilityID。
285
286* 示例
287
288```javascript
289import particleAbility from '@ohos.ability.particleAbility'
290var mRemote;
291var connId;
292function onConnectCallback(element, remote){
293    mRemote = remote;
294    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
295}
296function onDisconnectCallback(element){
297    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
298}
299function onFailedCallback(code){
300    console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code)
301}
302var connId = particleAbility.connectAbility(
303    {
304        bundleName: "com.ix.ServiceAbility",
305        abilityName: "ServiceAbilityA",
306    },
307    {
308        onConnect: onConnectCallback,
309        onDisconnect: onDisconnectCallback,
310        onFailed: onFailedCallback,
311    },
312);
313```
314
315#### ParticleAbility.disconnectAbility(connection: number, callback:AsyncCallback<void>): void
316
317* 接口说明
318
319  断开与指定ServiceAbility的连接(callback形式)
320
321* disconnectAbility参数描述
322
323| 名称       | 读写属性 | 类型          | 必填 | 描述                           |
324| ---------- | -------- | ------------- | ---- | ------------------------------ |
325| connection | 只读     | number        | 是   | 指定断开连接的ServiceAbilityID |
326| callback   | 只读     | AsyncCallback | 是   | 被指定的回调方法               |
327
328* 返回值
329
330331
332* 示例
333
334```javascript
335import particleAbility from '@ohos.ability.particleAbility'
336var mRemote;
337var connId;
338function onConnectCallback(element, remote){
339    mRemote = remote;
340    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
341}
342function onDisconnectCallback(element){
343    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
344}
345function onFailedCallback(code){
346    console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code)
347}
348var connId = particleAbility.connectAbility(
349    {
350        bundleName: "com.ix.ServiceAbility",
351        abilityName: "ServiceAbilityA",
352    },
353    {
354        onConnect: onConnectCallback,
355        onDisconnect: onDisconnectCallback,
356        onFailed: onFailedCallback,
357    },
358);
359var result = particleAbility.disconnectAbility(connId,
360    (error,data) => {
361    console.log('particleAbilityTest DisConnectJsSameBundleName result errCode : ' + error.code + " data: " + data)
362    },
363);
364```
365
366#### ParticleAbility.disconnectAbility(connection: number): Promise<void>;
367
368* 接口说明
369
370  断开与指定ServiceAbility的连接(promise形式)
371
372* disconnectAbility参数描述
373
374| 名称       | 读写属性 | 类型   | 必填 | 描述                           |
375| ---------- | -------- | ------ | ---- | ------------------------------ |
376| connection | 只读     | number | 是   | 指定断开连接的ServiceAbilityID |
377
378* 返回值
379
380381
382* 示例
383
384```javascript
385import particleAbility from '@ohos.ability.particleAbility'
386var mRemote;
387var connId;
388function onConnectCallback(element, remote){
389    mRemote = remote;
390    console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy));
391}
392function onDisconnectCallback(element){
393    console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
394}
395function onFailedCallback(code){
396    console.log('particleAbilityTest ConnectAbility onFailed errCode : ' + code)
397}
398var connId = particleAbility.connectAbility(
399    {
400        bundleName: "com.ix.ServiceAbility",
401        abilityName: "ServiceAbilityA",
402    },
403    {
404        onConnect: onConnectCallback,
405        onDisconnect: onDisconnectCallback,
406        onFailed: onFailedCallback,
407    },
408);
409var result = await particleAbility.disconnectAbility(connId);
410```
411
412