• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.bundle.overlay (overlay模块)
2
3本模块提供[overlay特征应用](#overlay特征应用介绍)的安装,overlay特征应用的[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)信息的查询以及overlay特征应用的禁用使能的能力。
4
5> **说明:**
6>
7> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11``` ts
12import overlay from '@ohos.bundle.overlay';
13```
14
15## overlay.setOverlayEnabled
16
17setOverlayEnabled(moduleName:string, isEnabled: boolean): Promise\<void>
18
19以异步方法设置当前应用中overlay特征module的禁用使能状态。使用Promise异步回调。成功返回null,失败返回对应错误信息。
20
21**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
22
23**参数:**
24
25| 参数名       | 类型     | 必填   | 说明                                    |
26| ----------- | ------ | ---- | --------------------------------------- |
27| moduleName  | string | 是    | overlay特征module的HAP名称。               |
28| isEnabled   | boolean  | 是  | 值为true表示使能,值为false表示禁用。 |
29
30**返回值:**
31
32| 类型                        | 说明                 |
33| ------------------------- | ------------------ |
34| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
35
36**错误码:**
37
38以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
39
40| 错误码ID | 错误信息                                |
41| ------ | -------------------------------------- |
42| 17700002 | The specified module name is not found. |
43| 17700033 | The specified module is not an overlay module. |
44
45**示例:**
46
47```ts
48import overlay from '@ohos.bundle.overlay';
49import { BusinessError } from '@ohos.base';
50let moduleName = "feature";
51let isEnabled = false;
52
53try {
54    overlay.setOverlayEnabled(moduleName, isEnabled)
55        .then(() => {
56            console.info('setOverlayEnabled success');
57        }).catch((err: BusinessError) => {
58            console.info('setOverlayEnabled failed due to err code: ' + err.code + ' ' + 'message:' + err.message);
59        });
60} catch (err) {
61    let code = (err as BusinessError).code;
62    let message = (err as BusinessError).message;
63    console.info('setOverlayEnabled failed due to err code: ' + code + ' ' + 'message:' + message);
64}
65```
66
67## overlay.setOverlayEnabled
68
69setOverlayEnabled(moduleName:string, isEnabled: boolean, callback: AsyncCallback\<void>): void
70
71以异步方法设置当前应用中overlay module的禁用使能状态。使用callback异步回调。成功返回null,失败返回对应错误信息。
72
73**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
74
75**参数:**
76
77| 参数名       | 类型     | 必填   | 说明                                    |
78| ----------- | ------ | ---- | --------------------------------------- |
79| moduleName  | string | 是    | overlay特征module的HAP名称。               |
80| isEnabled   | boolean  | 是  | 值为true表示使能,值为false表示禁用。|
81| callback    | AsyncCallback\<void> | 是    | 回调函数,当设置指定module的overlay禁用使能状态成功时,err为null,否则为错误对象。 |
82
83**错误码:**
84
85以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
86
87| 错误码ID | 错误信息                                |
88| ------ | -------------------------------------- |
89| 17700002 | The specified module name is not found. |
90| 17700033 | The specified module is not an overlay module. |
91
92**示例:**
93
94```ts
95import overlay from '@ohos.bundle.overlay';
96import { BusinessError } from '@ohos.base';
97let moduleName = "feature";
98let isEnabled = false;
99
100try {
101    overlay.setOverlayEnabled(moduleName, isEnabled, (err, data) => {
102        if (err) {
103            console.info('setOverlayEnabled failed due to err code: ' + err.code + ' ' + 'message:' + err.message);
104            return;
105        }
106        console.info('setOverlayEnabled success');
107    });
108} catch (err) {
109    let code = (err as BusinessError).code;
110    let message = (err as BusinessError).message;
111    console.info('setOverlayEnabled failed due to err code: ' + code + ' ' + 'message:' + message);
112}
113```
114
115## overlay.setOverlayEnabledByBundleName
116
117setOverlayEnabledByBundleName(bundleName:string, moduleName:string, isEnabled: boolean): Promise\<void>
118
119以异步方法设置指定应用的overlay module的禁用使能状态。使用Promise异步回调,成功返回应用的处置状态,失败返回对应错误信息。
120
121**需要权限:** ohos.permission.CHANGE_OVERLAY_ENABLED_STATE
122
123**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
124
125**系统API:**  此接口为系统接口。
126
127**参数:**
128
129| 参数名       | 类型     | 必填   | 说明                                    |
130| ----------- | ------ | ---- | --------------------------------------- |
131| bundleName  | string | 是    | 指定应用的bundle名称。                 |
132| moduleName  | string | 是    | 指定应用的overlay module的HAP名称。    |
133| isEnabled   | boolean  | 是  | 值为true表示使能,值为false表示禁用。 |
134
135**返回值:**
136
137| 类型                        | 说明                 |
138| ------------------------- | ------------------ |
139| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
140
141**错误码:**
142
143以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
144
145| 错误码ID | 错误信息                                |
146| ------ | -------------------------------------- |
147| 17700001 | The specified bundleName is not found. |
148| 17700002 | The specified module name is not found. |
149| 17700032 | The specified bundle does not contain any overlay module. |
150| 17700033 | The specified module is not an overlay module. |
151
152**示例:**
153
154```ts
155import overlay from '@ohos.bundle.overlay';
156import { BusinessError } from '@ohos.base';
157let bundleName = "com.example.myapplication_xxxxx";
158let moduleName = "feature";
159let isEnabled = false;
160
161try {
162    overlay.setOverlayEnabledByBundleName(bundleName, moduleName, isEnabled)
163        .then((data) => {
164            console.info('setOverlayEnabledByBundleName successfully');
165        }).catch((err: BusinessError) => {
166            console.info('setOverlayEnabledByBundleName failed due to err code: ' + err.code + ' ' + 'message:' + err.message);
167        });
168} catch (err) {
169    let code = (err as BusinessError).code;
170    let message = (err as BusinessError).message;
171    console.info('setOverlayEnabledByBundleName failed due to err code: ' + code + ' ' + 'message:' + message);
172}
173```
174
175## overlay.setOverlayEnabledByBundleName
176
177setOverlayEnabledByBundleName(bundleName:string, moduleName:string, isEnabled: boolean, callback: AsyncCallback\<void>): void
178
179以异步方法设置指定应用的overlay module的禁用使能状态。使用callback异步回调,成功返回应用的处置状态,失败返回对应错误信息。
180
181**需要权限:** ohos.permission.CHANGE_OVERLAY_ENABLED_STATE
182
183**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
184
185**系统API:**  此接口为系统接口。
186
187**参数:**
188
189| 参数名       | 类型     | 必填   | 说明                                  |
190| ----------- | ------ | ---- | --------------------------------------- |
191| bundleName  | string | 是    | 指定应用的bundle名称。                 |
192| moduleName  | string | 是    | 指定应用的overlay特征module的HAP名称。    |
193| isEnabled   | boolean  | 是  | 值为true表示使能,值为false表示禁用。 |
194| callback    | AsyncCallback\<void> | 是    | 回调函数。当设置指定应用的overlay module的禁用使能状态成功时,err为null,否则为错误对象。                    |
195
196**错误码:**
197
198以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
199
200| 错误码ID | 错误信息                                |
201| ------ | -------------------------------------- |
202| 17700001 | The specified bundleName is not found. |
203| 17700002 | The specified module name is not found. |
204| 17700032 | The specified bundle does not contain any overlay module. |
205| 17700033 | The specified module is not an overlay module. |
206
207**示例:**
208
209```ts
210import overlay from '@ohos.bundle.overlay';
211import { BusinessError } from '@ohos.base';
212let bundleName = "com.example.myapplication_xxxxx";
213let moduleName = "feature";
214let isEnabled = false;
215
216try {
217    overlay.setOverlayEnabledByBundleName(bundleName, moduleName, isEnabled, (err, data) => {
218        if (err) {
219            console.info('setOverlayEnabledByBundleName failed due to err code: ' + err.code + ' ' + 'message:' + err.message);
220            return;
221        }
222        console.info('setOverlayEnabledByBundleName successfully');
223    });
224} catch (err) {
225    let code = (err as BusinessError).code;
226    let message = (err as BusinessError).message;
227    console.info('setOverlayEnabledByBundleName failed due to err code: ' + code + ' ' + 'message:' + message);
228}
229```
230
231## overlay.getOverlayModuleInfo
232
233getOverlayModuleInfo(moduleName: string): Promise\<OverlayModuleInfo>
234
235以异步方法获取当前应用中指定的module的overlayModuleInfo信息。使用promise异步回调,成功返回null,失败返回对应错误信息。
236
237**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
238
239**参数:**
240
241| 参数名       | 类型     | 必填   | 说明                                    |
242| ----------- | ------ | ---- | ------------------------------------------ |
243| moduleName | string | 是    | 指定当前应用中的overlay module的HAP名称。     |
244
245**返回值:**
246
247| 类型                        | 说明                 |
248| ------------------------- | ------------------ |
249| Promise\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)> | Promise对象,返回[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)。|
250
251**错误码:**
252
253以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
254
255| 错误码ID | 错误信息                                |
256| ------ | -------------------------------------- |
257| 17700002 | The specified module name is not found. |
258| 17700032 | The specified bundle does not contain any overlay module. |
259| 17700033 | The specified module is not an overlay module. |
260
261**示例:**
262
263```ts
264import overlay from '@ohos.bundle.overlay';
265import { BusinessError } from '@ohos.base';
266let moduleName = "feature";
267
268(async() => {
269    try {
270        let overlayModuleInfo = await overlay.getOverlayModuleInfo(moduleName);
271        console.log('overlayModuleInfo is ' + JSON.stringify(overlayModuleInfo));
272    } catch(err) {
273        let code = (err as BusinessError).code;
274        let message = (err as BusinessError).message;
275        console.log('getOverlayModuleInfo failed due to err code : ' + code + ' ' + 'message :' + message);
276    }
277})();
278```
279
280## overlay.getOverlayModuleInfo
281
282getOverlayModuleInfo(moduleName: string, callback: AsyncCallback\<OverlayModuleInfo>): void
283
284以异步方法获取当前应用中指定的module的overlayModuleInfo信息。使用callback异步回调,成功返回null,失败返回对应错误信息。
285
286**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
287
288**参数:**
289
290| 参数名       | 类型     | 必填   | 说明                                    |
291| ----------- | ------ | ---- | --------------------------------------- |
292| moduleName | string | 是    | 指定当前应用中的overlay特征module的HAP名称。     |
293| callback    | AsyncCallback\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)> | 是    | 回调函数,当获取当前应用中指定的module的[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)信息成功时,err返回null。否则回调函数返回具体错误对象。                   |
294
295**错误码:**
296
297以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
298
299| 错误码ID | 错误信息                                |
300| ------ | -------------------------------------- |
301| 17700002 | The specified module name is not found. |
302| 17700032 | The specified bundle does not contain any overlay module. |
303| 17700033 | The specified module is not an overlay module. |
304
305**示例:**
306
307```ts
308import overlay from '@ohos.bundle.overlay';
309import { BusinessError } from '@ohos.base';
310let moduleName = "feature";
311try {
312    overlay.getOverlayModuleInfo(moduleName, (err, data) => {
313        if (err) {
314            console.log('getOverlayModuleInfo failed due to err code : ' + err.code + ' ' + 'message :' + err.message);
315            return;
316        }
317        console.log('overlayModuleInfo is ' + JSON.stringify(data));
318    });
319} catch (err) {
320    let code = (err as BusinessError).code;
321    let message = (err as BusinessError).message;
322    console.log('getOverlayModuleInfo failed due to err code : ' + code + ' ' + 'message :' + message);
323}
324```
325
326## overlay.getTargetOverlayModuleInfos
327
328getTargetOverlayModuleInfos(targetModuleName: string): Promise\<Array\<OverlayModuleInfo>>
329
330以异步方法获取指定的目标module的OverlayModuleInfo。使用promise异步回调,成功返回null,失败返回对应错误信息。
331
332**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
333
334**参数:**
335
336| 参数名       | 类型     | 必填   | 说明                                    |
337| ----------- | ------ | ---- | --------------------------------------- |
338| targetModuleName | string | 是    | 指定当前应用中的目标module的HAP名称。     |
339
340**返回值:**
341
342| 类型                                                         | 说明                                                         |
343| ------------------------------------------------------------ | ------------------------------------------------------------ |
344| Promise\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>> | Promise对象,返回\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>>。 |
345
346**错误码:**
347
348以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
349
350| 错误码ID | 错误信息                                |
351| ------ | -------------------------------------- |
352| 17700002 | The specified module name is not found. |
353| 17700034 | The specified module is an overlay module. |
354
355**示例:**
356
357```ts
358import overlay from '@ohos.bundle.overlay';
359import { BusinessError } from '@ohos.base';
360let targetModuleName = "feature";
361
362(async() => {
363    try {
364        let overlayModuleInfos = await overlay.getTargetOverlayModuleInfos(targetModuleName);
365        console.log('overlayModuleInfos are ' + JSON.stringify(overlayModuleInfos));
366    } catch(err) {
367        let code = (err as BusinessError).code;
368        let message = (err as BusinessError).message;
369        console.log('getTargetOverlayModuleInfos failed due to err code : ' + code + ' ' + 'message :' + message);
370    }
371})();
372```
373
374## overlay.getTargetOverlayModuleInfos
375
376getTargetOverlayModuleInfos(targetModuleName: string, callback: AsyncCallback\<Array\<OverlayModuleInfo>>): void
377
378以异步方法获取指定的目标module的OverlayModuleInfo。使用callback异步回调,成功返回null,失败返回对应错误信息。
379
380**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
381
382**参数:**
383
384| 参数名       | 类型     | 必填   | 说明                                    |
385| ----------- | ------ | ---- | --------------------------------------- |
386| targetModuleName | string | 是    | 指定当前应用中的目标module的HAP名称。     |
387| callback    | AsyncCallback\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>> | 是    | 回调函数,当获取指定的目标module的[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)成功时,err返回null。否则回调函数返回具体错误对象。  |
388
389**错误码:**
390
391以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
392
393| 错误码ID | 错误信息                                |
394| ------ | -------------------------------------- |
395| 17700002 | The specified module name is not found.  |
396| 17700034 | The specified module is an overlay module. |
397
398**示例:**
399
400```ts
401import overlay from '@ohos.bundle.overlay';
402import { BusinessError } from '@ohos.base';
403let targetModuleName = "feature";
404try {
405    overlay.getTargetOverlayModuleInfos(targetModuleName, (err, data) => {
406        if (err) {
407            console.log('getTargetOverlayModuleInfos failed due to err code : ' + err.code + ' ' + 'message :' + err.message);
408            return;
409        }
410        console.log('overlayModuleInfo is ' + JSON.stringify(data));
411    });
412} catch (err) {
413    let code = (err as BusinessError).code;
414    let message = (err as BusinessError).message;
415    console.log('getTargetOverlayModuleInfos failed due to err code : ' + code + ' ' + 'message :' + message);
416}
417```
418
419## overlay.getOverlayModuleInfoByBundleName
420
421getOverlayModuleInfoByBundleName(bundleName: string, moduleName?: string): Promise\<Array\<OverlayModuleInfo>>
422
423以异步方法获取指定应用中指定module的OverlayModuleInfo信息。使用promise异步回调,成功返回null,失败返回对应错误信息。
424
425**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
426
427**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
428
429**系统API:**  此接口为系统接口。
430
431**参数:**
432
433| 参数名       | 类型     | 必填   | 说明                                    |
434| ----------- | ------ | ---- | --------------------------------------- |
435| bundleName | string | 是    | 指定应用的bundle名称。                    |
436| moduleName | string | 否    | 指定应用中的overlay module的HAP名称。默认值:缺省该字段时,查询接口将查询指定应用中所有module的OverlayModuleInfo信息。     |
437
438**返回值:**
439
440| 类型                                                         | 说明                                                         |
441| ------------------------------------------------------------ | ------------------------------------------------------------ |
442| Promise\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>> | Promise对象,返回\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>>。 |
443
444**错误码:**
445
446以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
447
448| 错误码ID | 错误信息                                |
449| ------ | -------------------------------------- |
450| 17700001 | The specified bundleName is not found. |
451| 17700002 | The specified module name is not found. |
452| 17700032 | The specified bundle does not contain any overlay module. |
453| 17700033 | The specified module is not an overlay module. |
454
455**示例:**
456
457```ts
458import overlay from '@ohos.bundle.overlay';
459import { BusinessError } from '@ohos.base';
460let bundleName = "com.example.myapplication_xxxxx";
461let moduleName = "feature";
462
463(async() => {
464    try {
465        let overlayModuleInfos = await overlay.getOverlayModuleInfoByBundleName(bundleName, moduleName);
466        console.log('overlayModuleInfos are ' + JSON.stringify(overlayModuleInfos));
467    } catch(err) {
468        let code = (err as BusinessError).code;
469        let message = (err as BusinessError).message;
470        console.log('getTargetOverlayModuleInfos failed due to err code : ' + code + ' ' + 'message :' + message);
471    }
472})();
473```
474
475## overlay.getOverlayModuleInfoByBundleName
476
477getOverlayModuleInfoByBundleName(bundleName: string, moduleName: string, callback: AsyncCallback\<Array\<OverlayModuleInfo>>): void
478
479以异步方法获取指定应用中指定module的OverlayModuleInfo信息。使用callback异步回调,成功返回null,失败返回对应错误信息。
480
481**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
482
483**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
484
485**系统API:**  此接口为系统接口。
486
487**参数:**
488
489| 参数名       | 类型     | 必填   | 说明                                    |
490| ----------- | ------ | ---- | --------------------------------------- |
491| bundleName | string | 是    | 指定应用的bundle名称。                    |
492| moduleName | string | 是    | 指定应用中的overlay module的HAP名称。缺省该字段时,查询接口将查询指定应用中所有module的OverlayModuleInfo信息。     |
493| callback    | AsyncCallback\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>> | 是    | 回调函数,当获取指定应用中指定module的[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)信息成功时,err返回null。否则回调函数返回具体错误对象。    |
494
495**错误码:**
496
497以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
498
499| 错误码ID | 错误信息                                |
500| ------ | -------------------------------------- |
501| 17700001 | The specified bundleName is not found. |
502| 17700002 | The specified module name is not found. |
503| 17700032 | The specified bundle does not contain any overlay module. |
504| 17700033 | The specified module is not an overlay module. |
505
506**示例:**
507
508```ts
509import overlay from '@ohos.bundle.overlay';
510import { BusinessError } from '@ohos.base';
511let bundleName = "com.example.myapplication_xxxxx";
512let moduleName = "feature";
513
514try {
515    overlay.getOverlayModuleInfoByBundleName(bundleName, moduleName, (err, data) => {
516        if (err) {
517            console.log('getOverlayModuleInfoByBundleName failed due to err code : ' + err.code + ' ' + 'message :' + err.message);
518            return;
519        }
520        console.log('overlayModuleInfo is ' + JSON.stringify(data));
521    });
522} catch (err) {
523    let code = (err as BusinessError).code;
524    let message = (err as BusinessError).message;
525    console.log('getOverlayModuleInfoByBundleName failed due to err code : ' + code + ' ' + 'message :' + message);
526}
527```
528
529## overlay.getOverlayModuleInfoByBundleName
530
531getOverlayModuleInfoByBundleName(bundleName: string, callback: AsyncCallback\<Array\<OverlayModuleInfo>>): void
532
533以异步方法获取指定应用中所有module的OverlayModuleInfo信息。使用callback异步回调,成功返回null,失败返回对应错误信息。
534
535**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
536
537**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
538
539**系统API:**  此接口为系统接口。
540
541**参数:**
542
543| 参数名       | 类型     | 必填   | 说明                                    |
544| ----------- | ------ | ---- | --------------------------------------- |
545| bundleName | string | 是    | 指定应用的bundle名称。                    |
546| callback    | AsyncCallback\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>> | 是    | 回调函数,当获取指定应用中所有module的[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)信息成功时,err返回null。否则回调函数返回具体错误对象。                   |
547
548**错误码:**
549
550以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
551
552| 错误码ID | 错误信息                                |
553| ------ | -------------------------------------- |
554| 17700001 | The specified bundleName is not found. |
555| 17700032 | The specified bundle does not contain any overlay module. |
556
557**示例:**
558
559```ts
560import overlay from '@ohos.bundle.overlay';
561import { BusinessError } from '@ohos.base';
562let bundleName = "com.example.myapplication_xxxxx";
563
564try {
565    overlay.getOverlayModuleInfoByBundleName(bundleName, (err, data) => {
566        if (err) {
567            console.log('getOverlayModuleInfoByBundleName failed due to err code : ' + err.code + ' ' + 'message :' + err.message);
568            return;
569        }
570        console.log('overlayModuleInfo is ' + JSON.stringify(data));
571    });
572} catch (err) {
573    let code = (err as BusinessError).code;
574    let message = (err as BusinessError).message;
575    console.log('getOverlayModuleInfoByBundleName failed due to err code : ' + code + ' ' + 'message :' + message);
576}
577```
578
579## overlay.getTargetOverlayModuleInfosByBundleName
580
581getTargetOverlayModuleInfosByBundleName(targetBundleName: string, moduleName?: string): Promise\<Array\<OverlayModuleInfo>>
582
583以异步方法获取指定应用中指定module关联的所有OverlayModuleInfo信息。使用promise异步回调,成功返回null,失败返回对应错误信息。
584
585**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
586
587**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
588
589**系统API:**  此接口为系统接口。
590
591**参数:**
592
593| 参数名       | 类型     | 必填   | 说明                                    |
594| ----------- | ------ | ---- | --------------------------------------- |
595| targetBundleName | string | 是    | 指定目标应用的bundle名称。                    |
596| moduleName | string | 否    | 指定应用中的目标module的HAP名称。默认值:缺省该字段时,查询接口将查询指定应用中所有module所关联的OverlayModuleInfo信息。     |
597
598**返回值:**
599
600| 类型                        | 说明                 |
601| ------------------------- | ------------------ |
602| Promise\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>> | Promise对象,返回\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>>。 |
603
604**错误码:**
605
606以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
607
608| 错误码ID | 错误信息                                |
609| ------ | -------------------------------------- |
610| 17700001 | The specified bundleName is not found. |
611| 17700002 | The specified module name is not found. |
612| 17700034 | The specified module is an overlay module. |
613| 17700035 | The specified bundle is an overlay bundle. |
614
615**示例:**
616
617```ts
618import overlay from '@ohos.bundle.overlay';
619import { BusinessError } from '@ohos.base';
620let targetBundleName = "com.example.myapplication_xxxxx";
621let moduleName = "feature";
622
623(async() => {
624    try {
625        let overlayModuleInfos = await overlay.getTargetOverlayModuleInfosByBundleName(targetBundleName, moduleName);
626        console.log('overlayModuleInfos are ' + JSON.stringify(overlayModuleInfos));
627    } catch(err) {
628        let code = (err as BusinessError).code;
629        let message = (err as BusinessError).message;
630        console.log('getTargetOverlayModuleInfosByBundleName failed due to err code : ' + code + ' ' + 'message :' + message);
631    }
632})();
633```
634
635## overlay.getTargetOverlayModuleInfosByBundleName
636
637getTargetOverlayModuleInfosByBundleName(targetBundleName: string, moduleName: string, callback: AsyncCallback&lt;Array&lt;OverlayModuleInfo&gt;&gt;): void
638
639以异步方法获取指定应用中指定module关联的所有OverlayModuleInfo信息。使用callback异步回调,成功返回null,失败返回对应错误信息。
640
641**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
642
643**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
644
645**系统API:**  此接口为系统接口。
646
647**参数:**
648
649| 参数名       | 类型     | 必填   | 说明                                    |
650| ----------- | ------ | ---- | --------------------------------------- |
651| targetBundleName | string | 是    | 指定目标应用的bundle名称。                    |
652| moduleName | string | 是    | 指定应用中的目标module的HAP名称。缺省该字段时,查询接口将查询指定应用中所有module所关联的OverlayModuleInfo信息。     |
653| callback    | AsyncCallback\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>> | 是    | 回调函数,当获取指定应用中指定module关联的所有[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)信息成功时,err返回null。否则回调函数返回具体错误对象。                   |
654
655**错误码:**
656
657以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
658
659| 错误码ID | 错误信息                                |
660| ------ | -------------------------------------- |
661| 17700001 | The specified bundleName is not found. |
662| 17700002 | The specified module name is not found. |
663| 17700034 | The specified module is an overlay module. |
664| 17700035 | The specified bundle is an overlay bundle. |
665
666**示例:**
667
668```ts
669import overlay from '@ohos.bundle.overlay';
670import { BusinessError } from '@ohos.base';
671let targetBundleName = "com.example.myapplication_xxxxx";
672let moduleName = "feature";
673
674try {
675    overlay.getTargetOverlayModuleInfosByBundleName(targetBundleName, moduleName, (err, data) => {
676        if (err) {
677            console.log('getTargetOverlayModuleInfosByBundleName failed due to err code : ' + err.code + ' ' + 'message :' + err.message);
678            return;
679        }
680        console.log('overlayModuleInfo is ' + JSON.stringify(data));
681    });
682} catch (err) {
683    let code = (err as BusinessError).code;
684    let message = (err as BusinessError).message;
685    console.log('getTargetOverlayModuleInfosByBundleName failed due to err code : ' + code + ' ' + 'message :' + message);
686}
687```
688
689## overlay.getTargetOverlayModuleInfosByBundleName
690
691getTargetOverlayModuleInfosByBundleName(targetBundleName: string, callback: AsyncCallback&lt;Array&lt;OverlayModuleInfo&gt;&gt;): void
692
693以异步方法获取指定应用中所有module关联的所有OverlayModuleInfo信息。使用callback异步回调,成功返回null,失败返回对应错误信息。
694
695**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
696
697**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
698
699**系统API:**  此接口为系统接口。
700
701**参数:**
702
703| 参数名       | 类型     | 必填   | 说明                                    |
704| ----------- | ------ | ---- | --------------------------------------- |
705| targetBundleName | string | 是    | 指定目标应用的bundle名称。                    |
706| callback    | AsyncCallback\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>> | 是    | 回调函数,当获取指定应用中所有module关联的所有[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)信息成功时,err返回null。否则回调函数返回具体错误对象。                   |
707
708**错误码:**
709
710以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
711
712| 错误码ID | 错误信息                                |
713| ------ | -------------------------------------- |
714| 17700001 | The specified bundleName is not found. |
715| 17700035 | The specified bundle is an overlay bundle. |
716
717**示例:**
718
719```ts
720import overlay from '@ohos.bundle.overlay';
721import { BusinessError } from '@ohos.base';
722let targetBundleName = "com.example.myapplication_xxxxx";
723
724try {
725    overlay.getTargetOverlayModuleInfosByBundleName(targetBundleName, (err, data) => {
726        if (err) {
727            console.log('getTargetOverlayModuleInfosByBundleName failed due to err code : ' + err.code + ' ' + 'message :' + err.message);
728            return;
729        }
730        console.log('overlayModuleInfo is ' + JSON.stringify(data));
731    });
732} catch (err) {
733    let code = (err as BusinessError).code;
734    let message = (err as BusinessError).message;
735    console.log('getTargetOverlayModuleInfosByBundleName failed due to err code : ' + code + ' ' + 'message :' + message);
736}
737```
738
739## overlay特征应用介绍
740
741**概念**
742overlay特征应用指的是应用中包含有overlay特征的module。该特征module一般是为设备上存在的非overlay特征的module提供额外的资源文件,以便于目标module在运行阶段可以使用这些额外的资源文件来展示不同的颜色,标签,主题等等。overlay特征仅适用于stage模型。
743
744**如何识别overlay特征的module**
745在IDE中创建应用工程时, module的配置文件module.json5中包含targetModuleName和targetPriority字段时,该module将会在安装阶段被识别为overlay特征的module。
746