本示例使用 AbilityStartCallback , UIExtensionContent , UIExtensionContentSession 中的接口进行实现。
主页面 | 弹出状态Toast | UIExtensionContentSession页面 | UIExtension启动页 |
---|---|---|---|
使用说明
AbilityStartCallback对应接口
1.点击主页面AbilityStartCallback开发示例按钮,跳转到'AbilityStartCallback开发示例'界面;
2.点击startAbilityByTyp onResult按钮,拉起'选择音频'窗口,点击返回按钮,返回上级界面;
3.点击startAbilityByType onError按钮,弹出提示'startAbilityByType onError...'信息。
UIExtensionContext对应接口
1.点击主页面UIExtensionContext开发示例按钮,跳转到'UIExtensionContext开发示例'界面;
2.点击openLink按钮,启动一个新的UIAbility,点击返回按钮,返回上级界面;
3.点击启动UIExtensionAbility按钮,启动一个新的UIExtensionAbility,在UIExtensionAbility界面上显示reportDrawnCompleted,terminateSelf callback,terminateSelf promise,terminateSelfWithResult callback,terminateSelfWithResult promise接口对应的按钮;
4.点击reportDrawnCompleted按钮,弹出提示'UIExtensionContent.reportDrawnCompleted succeed.'信息;
5.点击terminateSelf callback按钮,关闭UIExtensionAbility,显示'UIExtensionContext开发示例'界面;
6.点击启动UIExtensionAbility按钮,在UIExtensionAbility界面上点击terminateSelf promise按钮,关闭UIExtensionAbility,显示'UIExtensionContext开发示例'界面;
7.点击启动UIExtensionAbility按钮,在UIExtensionAbility界面上点击terminateSelfWithResult callback按钮,关闭UIExtensionAbility,显 示'UIExtensionContext开发示例'界面;
8.点击启动UIExtensionAbility按钮,在UIExtensionAbility界面上点击terminateSelfWithResult promise按钮,关闭UIExtensionAbility,显示'UIExtensionContext开发示例'界面。
UIExtensionContentSession对应接口
1.点击主页面UIExtensionContentSession开发示例按钮,跳转到'UIExtensionContentSession开发示例'界面;
2.点击启动UIExtensionAbility按钮,启动一个新的UIExtensionAbility,在UIExtensionAbility界面上显示terminateSelfWithResult callback,terminateSelfWithResult promise,setWindowPrivacyMode callback,setWindowPrivacyMode promise,getUIExtensionWindowProxy接口对应的按钮;
3.点击terminateSelfWithResult callback按钮,关闭UIExtensionAbility,显示'UIExtensionContentSession开发示例'界面;
4.点击terminateSelfWithResult promise按钮,关闭UIExtensionAbility,显示'UIExtensionContentSession开发示例'界面;
5.点击setWindowPrivacyMode callback按钮,弹出提示'UIExtensionContentSession.setWindowPrivacyMode(callback)...'信息;
6.点击setWindowPrivacyMode promise按钮,弹出提示'UIExtensionContentSession.setWindowPrivacyMode(promise)...'信息;
7.点击getUIExtensionWindowProxy按钮,弹出提示'UIExtensionContentSession.getUIExtensionWindowProxy...'信息;
entry/src/main/ets/
|---entryability
| |---EntryAbility.ets // 首页的Ability
| |---OpenLinkUIAbility.ets // UIAbility(用于验证新接口使用)
|---pages
| |---Index.ets // 首页
| |---OpenLinkIndex.ets // 被启动的OpenLink接口的展示页
|---uiextensionentry
| |---ContextUIExtensionAbility.ets // UIExtensionAbility(用于验证新接口使用)
| |---SessionUIExtensionAbility.ets // UIExtensionAbility(用于验证新接口使用)
|---uiextensionpages
| |---AbilityStartCallback.ets // AbilityStartCallback的接口的展示页
| |---UIExtensionContentSession.ets // UIExtensionContentSession的接口的展示页
| |---UIExtensionContentSessionPage.ets // SessionUIExtensionAbility加载的页面
| |---UIExtensionContext.ets // UIExtensionContext的接口的展示页
| |---UIExtensionContextPage.ets // ContextUIExtensionAbility加载的页面
AbilityStartCallback对应接口实现,源码参考AbilityStartCallback.ets
UIExtensionContext对应接口实现,源码参考UIExtensionContext.ets和UIExtensionContextPage.ets
openLink接口实现:在被启动的UIAbility的module.json5中配置下列字段:
-"actions"列表中包含"ohos.want.action.viewData"
- "entities"列表中包含"entity.system.browsable"
- "uris"列表中包含"scheme"为"https"且"domainVerify"为true的元素
在调用端调用openLink接口,传入对应字段信息,可以拉起对应的UIAbility;
reportDrawnCompleted接口实现:通过调用this.context.reportDrawnCompleted口开发者提供打点功能;
terminateSelf(Promise)接口实现:通过调用this.context.terminateSelf()接口实现停止Ability自身功能;
terminateSelf(Callback)接口实现:通过调用this.context.terminateSelf()接口实现停止Ability自身功能;
terminateSelfWithResult(Promise)接口实现:通过调用this.context.terminateSelfWithResult()接口实现停止Ability自身,并将结果返回给调用者的功能;
terminateSelfWithResult(Callback)接口实现:通过调用this.context.terminateSelfWithResult()接口实现停止Ability自身,并将结果返回给调用者的功能;
UIExtensionContentSession对应接口实现,源码参考UIExtensionContentSession.ets和UIExtensionContentSessionPage.ets
ohos.permission.START_INVISIBLE_ABILITY
ohos.permission.PRIVACY_WINDOW
不涉及。
1.本示例仅支持标准系统上运行,支持设备:RK3568;
2.本示例为Stage模型,支持API12版本SDK,版本号:5.0.0.31;
3.本示例涉及使用系统接口:UIAbilityContext.requestModalUIExtension,UIAbilityContext.startAbilityByType 需要手动替换Full SDK才能编译通过;
4.本示例需要使用DevEco Studio NEXT Developer Beta1 (Build Version: 5.0.3.403, built on June 20, 2024)才可编译运行;
5.本示例涉及ohos.permission.START_INVISIBLE_ABILITY权限为 system_core级别,需要配置高权限签名。
git init
git config core.sparsecheckout true
echo code/SystemFeature/UIExtensionSamples > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。