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