• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.bundle.overlay (overlay模块)
2<!--Kit: Ability Kit-->
3<!--Subsystem: BundleManager-->
4<!--Owner: @wanghang904-->
5<!--Designer: @hanfeng6-->
6<!--Tester: @kongjing2-->
7<!--Adviser: @Brilliantry_Rui-->
8
9本模块提供overlay特征应用的安装,overlay特征应用的[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)信息的查询以及overlay特征应用的禁用使能的能力。
10
11overlay特征应用指应用中包含有[overlay特征](../../quick-start/resource-categories-and-access.md#overlay机制)的module。该特征module一般是为设备上存在的非overlay特征的module提供额外的资源文件,以便目标module在运行阶段可以使用这些额外的资源文件来展示不同的颜色、标签、主题等。
12
13在DevEco Studio中创建应用工程时,若module的配置文件module.json5中包含targetModuleName和targetPriority字段,该module将会在安装阶段被识别为overlay特征的module。
14
15> **说明:**
16>
17> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
18>
19> overlay特征仅适用于stage模型。
20
21
22## 导入模块
23
24``` ts
25import { overlay } from '@kit.AbilityKit';
26```
27
28## overlay.setOverlayEnabled
29
30setOverlayEnabled(moduleName:string, isEnabled: boolean): Promise\<void>
31
32设置当前应用中overlay特征module的禁用使能状态。使用Promise异步回调。
33
34**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
35
36**参数:**
37
38| 参数名       | 类型     | 必填   | 说明                                    |
39| ----------- | ------ | ---- | --------------------------------------- |
40| moduleName  | string | 是    | overlay特征module的名称。               |
41| isEnabled   | boolean  | 是  | 值为true表示使能,值为false表示禁用。 |
42
43**返回值:**
44
45| 类型                        | 说明                 |
46| ------------------------- | ------------------ |
47| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
48
49**错误码:**
50
51以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
52
53| 错误码ID | 错误信息                                |
54| ------ | -------------------------------------- |
55| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
56| 17700002 | The specified module name is not found. |
57| 17700033 | The specified module is not an overlay module. |
58
59**示例:**
60
61```ts
62import { overlay } from '@kit.AbilityKit';
63import { BusinessError } from '@kit.BasicServicesKit';
64
65let moduleName = "feature";
66let isEnabled = false;
67
68try {
69  overlay.setOverlayEnabled(moduleName, isEnabled)
70    .then(() => {
71      console.info('setOverlayEnabled success');
72    }).catch((err: BusinessError) => {
73      console.error('setOverlayEnabled failed due to err code: ' + err.code + ' ' + 'message:' + err.message);
74    });
75} catch (err) {
76  let code = (err as BusinessError).code;
77  let message = (err as BusinessError).message;
78  console.error('setOverlayEnabled failed due to err code: ' + code + ' ' + 'message:' + message);
79}
80```
81
82## overlay.setOverlayEnabled
83
84setOverlayEnabled(moduleName: string, isEnabled: boolean, callback: AsyncCallback\<void>): void
85
86设置当前应用中overlay module的禁用使能状态。使用callback异步回调。
87
88**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
89
90**参数:**
91
92| 参数名       | 类型     | 必填   | 说明                                    |
93| ----------- | ------ | ---- | --------------------------------------- |
94| moduleName  | string | 是    | overlay特征module的名称。               |
95| isEnabled   | boolean  | 是  | 值为true表示使能,值为false表示禁用。|
96| callback    | AsyncCallback\<void> | 是    | [回调函数](../apis-basic-services-kit/js-apis-base.md#asynccallback),当设置指定module的overlay禁用使能状态成功时,err为null,否则为错误对象。 |
97
98**错误码:**
99
100以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
101
102| 错误码ID | 错误信息                                |
103| ------ | -------------------------------------- |
104| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
105| 17700002 | The specified module name is not found. |
106| 17700033 | The specified module is not an overlay module. |
107
108**示例:**
109
110```ts
111import { overlay } from '@kit.AbilityKit';
112import { BusinessError } from '@kit.BasicServicesKit';
113
114let moduleName = "feature";
115let isEnabled = false;
116
117try {
118  overlay.setOverlayEnabled(moduleName, isEnabled, (err, data) => {
119    if (err) {
120      console.error('setOverlayEnabled failed due to err code: ' + err.code + ' ' + 'message:' + err.message);
121      return;
122    }
123    console.info('setOverlayEnabled success');
124  });
125} catch (err) {
126  let code = (err as BusinessError).code;
127  let message = (err as BusinessError).message;
128  console.error('setOverlayEnabled failed due to err code: ' + code + ' ' + 'message:' + message);
129}
130```
131
132## overlay.getOverlayModuleInfo
133
134getOverlayModuleInfo(moduleName: string): Promise\<OverlayModuleInfo>
135
136获取当前应用中指定的module的overlayModuleInfo信息。使用promise异步回调。
137
138**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
139
140**参数:**
141
142| 参数名       | 类型     | 必填   | 说明                                    |
143| ----------- | ------ | ---- | ------------------------------------------ |
144| moduleName | string | 是    | 指定当前应用中的overlay module的名称。     |
145
146**返回值:**
147
148| 类型                        | 说明                 |
149| ------------------------- | ------------------ |
150| Promise\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)> | Promise对象,返回[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)。|
151
152**错误码:**
153
154以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
155
156| 错误码ID | 错误信息                                |
157| ------ | -------------------------------------- |
158| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
159| 17700002 | The specified module name is not found. |
160| 17700032 | The specified bundle does not contain any overlay module. |
161| 17700033 | The specified module is not an overlay module. |
162
163**示例:**
164
165```ts
166import { overlay } from '@kit.AbilityKit';
167import { BusinessError } from '@kit.BasicServicesKit';
168
169let moduleName = "feature";
170
171(async () => {
172  try {
173    let overlayModuleInfo = await overlay.getOverlayModuleInfo(moduleName);
174    console.info('overlayModuleInfo is ' + JSON.stringify(overlayModuleInfo));
175  } catch (err) {
176    let code = (err as BusinessError).code;
177    let message = (err as BusinessError).message;
178    console.error('getOverlayModuleInfo failed due to err code : ' + code + ' ' + 'message :' + message);
179  }
180})();
181```
182
183## overlay.getOverlayModuleInfo
184
185getOverlayModuleInfo(moduleName: string, callback: AsyncCallback\<OverlayModuleInfo>): void
186
187获取当前应用中指定的module的overlayModuleInfo信息。使用callback异步回调。
188
189**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
190
191**参数:**
192
193| 参数名       | 类型     | 必填   | 说明                                    |
194| ----------- | ------ | ---- | --------------------------------------- |
195| moduleName | string | 是    | 指定当前应用中的overlay特征module的名称。     |
196| callback    | AsyncCallback\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)> | 是    | [回调函数](../apis-basic-services-kit/js-apis-base.md#asynccallback),当获取当前应用中指定的module的[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)信息成功时,err返回null。否则回调函数返回具体错误对象。                   |
197
198**错误码:**
199
200以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
201
202| 错误码ID | 错误信息                                |
203| ------ | -------------------------------------- |
204| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
205| 17700002 | The specified module name is not found. |
206| 17700032 | The specified bundle does not contain any overlay module. |
207| 17700033 | The specified module is not an overlay module. |
208
209**示例:**
210
211```ts
212import { overlay } from '@kit.AbilityKit';
213import { BusinessError } from '@kit.BasicServicesKit';
214
215let moduleName = "feature";
216
217try {
218  overlay.getOverlayModuleInfo(moduleName, (err, data) => {
219    if (err) {
220      console.error('getOverlayModuleInfo failed due to err code : ' + err.code + ' ' + 'message :' + err.message);
221      return;
222    }
223    console.info('overlayModuleInfo is ' + JSON.stringify(data));
224  });
225} catch (err) {
226  let code = (err as BusinessError).code;
227  let message = (err as BusinessError).message;
228  console.error('getOverlayModuleInfo failed due to err code : ' + code + ' ' + 'message :' + message);
229}
230```
231
232## overlay.getTargetOverlayModuleInfos
233
234getTargetOverlayModuleInfos(targetModuleName: string): Promise\<Array\<OverlayModuleInfo>>
235
236获取指定的目标module的OverlayModuleInfo。使用promise异步回调。
237
238**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
239
240**参数:**
241
242| 参数名       | 类型     | 必填   | 说明                                    |
243| ----------- | ------ | ---- | --------------------------------------- |
244| targetModuleName | string | 是    | 指定当前应用中的目标module的名称。     |
245
246**返回值:**
247
248| 类型                                                         | 说明                                                         |
249| ------------------------------------------------------------ | ------------------------------------------------------------ |
250| Promise\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>> | Promise对象,返回\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>>。 |
251
252**错误码:**
253
254以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
255
256| 错误码ID | 错误信息                                |
257| ------ | -------------------------------------- |
258| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
259| 17700002 | The specified module name is not found. |
260| 17700034 | The specified module is an overlay module. |
261
262**示例:**
263
264```ts
265import { overlay } from '@kit.AbilityKit';
266import { BusinessError } from '@kit.BasicServicesKit';
267
268let targetModuleName = "feature";
269
270(async () => {
271  try {
272    let overlayModuleInfos = await overlay.getTargetOverlayModuleInfos(targetModuleName);
273    console.info('overlayModuleInfos are ' + JSON.stringify(overlayModuleInfos));
274  } catch (err) {
275    let code = (err as BusinessError).code;
276    let message = (err as BusinessError).message;
277    console.error('getTargetOverlayModuleInfos failed due to err code : ' + code + ' ' + 'message :' + message);
278  }
279})();
280```
281
282## overlay.getTargetOverlayModuleInfos
283
284getTargetOverlayModuleInfos(targetModuleName: string, callback: AsyncCallback\<Array\<OverlayModuleInfo>>): void
285
286获取指定的目标module的OverlayModuleInfo。使用callback异步回调。
287
288**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
289
290**参数:**
291
292| 参数名       | 类型     | 必填   | 说明                                    |
293| ----------- | ------ | ---- | --------------------------------------- |
294| targetModuleName | string | 是    | 指定当前应用中的目标module的名称。     |
295| callback    | AsyncCallback\<Array\<[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)>> | 是    | [回调函数](../apis-basic-services-kit/js-apis-base.md#asynccallback),当获取指定的目标module的[OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md)成功时,err返回null。否则回调函数返回具体错误对象。  |
296
297**错误码:**
298
299以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
300
301| 错误码ID | 错误信息                                |
302| ------ | -------------------------------------- |
303| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
304| 17700002 | The specified module name is not found.  |
305| 17700034 | The specified module is an overlay module. |
306
307**示例:**
308
309```ts
310import { overlay } from '@kit.AbilityKit';
311import { BusinessError } from '@kit.BasicServicesKit';
312
313let targetModuleName = "feature";
314
315try {
316  overlay.getTargetOverlayModuleInfos(targetModuleName, (err, data) => {
317    if (err) {
318      console.error('getTargetOverlayModuleInfos failed due to err code : ' + err.code + ' ' + 'message :' + err.message);
319      return;
320    }
321    console.info('overlayModuleInfo is ' + JSON.stringify(data));
322  });
323} catch (err) {
324  let code = (err as BusinessError).code;
325  let message = (err as BusinessError).message;
326  console.error('getTargetOverlayModuleInfos failed due to err code : ' + code + ' ' + 'message :' + message);
327}
328```
329
330## OverlayModuleInfo
331
332type OverlayModuleInfo = _OverlayModuleInfo.OverlayModuleInfo
333
334OverlayModuleInfo信息。
335
336**系统能力:** SystemCapability.BundleManager.BundleFramework.Overlay
337
338| 类型                                                         | 说明           |
339| ------------------------------------------------------------ | -------------- |
340| [_OverlayModuleInfo.OverlayModuleInfo](js-apis-bundleManager-overlayModuleInfo.md#overlaymoduleinfo-1) |OverlayModuleInfo信息。 |
341