本示例主要展示了EmbeddedUIExtensionAbility的提供方与拉起方的创建与使用。开发者可以在UIAbility的页面中通过EmbeddedComponent嵌入本应用的EmbeddedUIExtensionAbility提供的UI。EmbeddedUIExtensionAbility会在独立于UIAbility的进程中运行,完成其页面的布局和渲染。通常用于有进程隔离诉求的模块化开发场景。
主页 |
---|
entry/src/main/ets/
|---entryability
| |---EntryAbility.ts
|---pages
| |---Index.ets // 首页
| |---Extension.ets // EmbeddedUIExtensionComponent页面
|---model
| |---Logger.ts // 封装的日志类
|---embeddeduiextability
| |---EmbeddedUIExtAbility.ets
entry/src/main/resources
|---base
| |---element
| |---media
| |---profile
| | |---main_pages.json // 页面配置文件
|---en_US
|---rewfile
|---zh_CN
|---module.json5 // 配置文件
使用方在主页面Index.ets中通过EmbeddedUIExtensionComponent页面嵌入提供方应用的EmbeddedUIExtensionAbility提供的UI。
源码链接: Index.ets
提供方UIExtensionAbility页面在Extension.ets中实现,在页面中需要导入EmbeddedUIExtensionAbility的依赖包,自定义类继承EmbeddedUIExtensionAbility并实现onCreate、onSessionCreate、onSessionDestroy、onForeground、onBackground和onDestroy生命周期回调。
源码链接:Extension.ets
主页面Index.ets和提供方EmbeddedUIExtensionAbility页面在Extension.ets需要在main_pages.json中配置。
源码链接:main_pages.json
在工程Module对应的module.json5配置文件中注册EmbeddedUIExtensionAbility。type标签需要设置为“embeddedUI”, srcEntry字段表示当前UIExtensionAbility组件所对应的代码路径。
源码链接:module.json5
不涉及
不涉及
本当前EmbeddedUIExtensionAbility和EmbeddedComponent仅支持在拥有多进程配置的设备上使用。
本示例需要使用DevEco Studio 4.0 Beta2 (Build Version: 4.0.0.400 构建 2023年8月2日)及以上版本才可编译运行。
若单进程设备想尝试使用EmbeddedUIExtensionAbility,可以通过如下命令行将单进程设备配置为多进程设备。
hdc shell
param set persist.sys.abilityms.multi_process_model true // 将persist.sys.abilityms.multi_process_model参数配置为true
param save // 保存修改
param get persist.sys.abilityms.multi_process_model // 查询修改结果
reboot // 修改成功后重启生效
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/SystemFeature/ApplicationModels/EmbeddedUIExtensionAbility/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。