本示例主要展示了UIExtensionAbility的提供方与拉起方的创建与使用。开发者可以在UIAbility的页面中通过UIExtensionComponent嵌入提供方应用的UIExtensionAbility提供的UI。
使用说明:
主页 |
---|
entry/src/main/ets/
|---entryability
| |---EntryAbility.ts
|---pages
| |---Index.ets // 首页
| |---Extension.ets // UIExtensionComponent页面
|---model
| |---Logger.ts // 封装的日志类
|---uiextensionability
| |---UIExtensionAbility.ets
entry/src/main/resources
|---base
| |---element
| |---media
| |---profile
| | |---main_pages.json // 页面配置文件
|---en_US
|---rewfile
|---zh_CN
|---module.json5 // 配置文件
使用方在主页面Index.ets中通过UIExtensionComponent嵌入提供方应用的UIExtensionAbility提供的UI。
源码链接: Index.ets
接口参考: UIExtensionAbility
提供方UIExtensionAbility页面在Extension.ets中实现,在页面中需要导入UIExtensionAbility的依赖包,自定义类继承UIExtensionAbility并实现onCreate、onSessionCreate、onSessionDestroy、onForeground、onBackground和onDestroy生命周期回调。
源码链接:Extension.ets
接口参考:UIExtensionAbility
主页面Index.ets和提供方UIExtensionAbility页面在Extension.ets需要在main_pages.json中配置。
源码链接:main_pages.json
接口参考:UIExtensionAbility
在工程Module对应的module.json5配置文件中注册UIExtensionAbility,type字段需要配置为UIExtensionAbility所对应的类型。srcEntry字段表示当前UIExtensionAbility组件所对应的代码路径。
源码链接:module.json5
接口参考:UIExtensionAbility
不涉及
不涉及
本示例仅支持标准系统上运行,支持设备:RK3568;
本示例开发中需要手动替换Full SDK才能编译通过,具体操作可参考替换指南。
UIExtensionAbility仅支持系统应用,需要配置系统应用签名,可以参考特殊权限配置方法,把配置文件中的“apl”字段信息改为“system_basic”。
本示例需要使用DevEco Studio 4.0 Beta2 (Build Version: 4.0.0.400 构建 2023年8月2日)及以上版本才可编译运行。
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/SystemFeature/ApplicationModels/UIExtensionAbility/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。