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<Array<OverlayModuleInfo>>): 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<Array<OverlayModuleInfo>>): 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