相关问题
#鸿蒙通关秘籍#鸿蒙应用的数据提供方如何管理写入的数据?
44浏览 • 1回复 待解决
卡片提供方在主进程中主动更新卡片
1565浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在EmbeddedUIExtensionAbility中加载内容?
73浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何有效管理 EmbeddedUIExtensionAbility 的生命周期?
1浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何加载和使用 EmbeddedUIExtensionAbility?
5浏览 • 0回复 待解决
#鸿蒙通关秘籍#鸿蒙开发中的数据访问方如何查询公共数据?
37浏览 • 1回复 待解决
#鸿蒙通关秘籍#能否在EmbeddedUIExtensionAbility中使用特定的进程名称?
100浏览 • 1回复 待解决
#鸿蒙通关秘籍#怎么在DevEco Studio中创建一个EmbeddedUIExtensionAbility?
87浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在我的HarmonyOS应用中实现模块化开发?
12浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何配置鸿蒙应用中EmbeddedUIExtensionAbility的module.json5文件?
39浏览 • 1回复 待解决
作为组件提供方无法知道使用方传入的header/body中都有哪些字段,以及这些字段内部是否存在嵌套的情况。
1731浏览 • 0回复 待解决
#鸿蒙通关秘籍# 在鸿蒙开发中如何通过connection模块正确实现网络状态监测功能?
46浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中声明共享模块?
101浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用Router模块实现鸿蒙页面跳转?
60浏览 • 1回复 待解决
#鸿蒙通关秘籍#EmbeddedUIExtensionAbility在多进程配置的设备上有啥特别之处?
105浏览 • 1回复 待解决
#鸿蒙通关秘籍#我可以在EmbeddedUIExtensionAbility中使用哪些生命周期回调?
108浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙Native模块中集成NDK接口?
79浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS NEXT中引入TaskPool模块?
149浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在generateBarcode模块中设置纠错级别?
112浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何配置模块间的跨包路由?
53浏览 • 1回复 待解决
#鸿蒙通关秘籍#想要控制非首次启动的EmbeddedUIExtensionAbility的进程,该怎么做?
100浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现鸿蒙API 13中EmbeddedUIExtensionAbility的生命周期管理?
43浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中使用动态import高效加载模块?
65浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何利用封装后的模块来调用不同API接口以提升开发效率?
127浏览 • 1回复 待解决
要开发一个 EmbeddedUIExtensionAbility 提供方模块,按照以下步骤进行:
在 DevEco Studio 工程中,手动创建一个 EmbeddedUIExtensionAbility:
ets
目录) 右键选择“New > Directory”,新建一个目录,并命名为EmbeddedUIExtAbility
。EmbeddedUIExtAbility
目录中,右键选择“New > File”,新建一个.ts
文件,并命名为EmbeddedUIExtAbility.ts
。在
EmbeddedUIExtAbility.ts
文件中,导入EmbeddedUIExtensionAbility
的依赖包,自定义类继承EmbeddedUIExtensionAbility
,并实现生命周期回调,如下:typescript import EmbeddedUIExtensionAbility from '@ohos.app.ability.EmbeddedUIExtensionAbility' import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession' import Want from '@ohos.app.ability.Want';
const TAG: string = '[ExampleEmbeddedAbility]' export default class ExampleEmbeddedAbility extends EmbeddedUIExtensionAbility { onCreate() { console.log(TAG,
onCreate
); }onForeground() { console.log(TAG,
onForeground
); }onBackground() { console.log(TAG,
onBackground
); }onDestroy() { console.log(TAG,
onDestroy
); }onSessionCreate(want: Want, session: UIExtensionContentSession) { console.log(TAG,
onSessionCreate, want: ${JSON.stringify(want)}
); let param: Record<string, UIExtensionContentSession> = { 'session': session }; let storage: LocalStorage = new LocalStorage(param); session.loadContent('pages/extension', storage); }onSessionDestroy(session: UIExtensionContentSession) { console.log(TAG,
onSessionDestroy
); } }在入口文件
pages/extension.ets
中,定义界面内容:typescript import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession';
let storage = LocalStorage.getShared()
@Entry(storage) @Component struct Extension { @State message: string = 'EmbeddedUIExtensionAbility Index'; private session: UIExtensionContentSession | undefined = storage.get<UIExtensionContentSession>('session');
build() { Column() { Text(this.message) .fontSize(20) .fontWeight(FontWeight.Bold) Button("terminateSelfWithResult").fontSize(20).onClick(() => { this.session?.terminateSelfWithResult({ resultCode: 1, want: { bundleName: "com.example.embeddeddemo", abilityName: "ExampleEmbeddedAbility", }}); }) }.width('100%').height('100%') } }
在
module.json5
文件中,注册EmbeddedUIExtensionAbility
:{ "module": { "extensionAbilities": [ { "name": "EmbeddedUIExtAbility", "icon": "$media:icon", "description": "EmbeddedUIExtAbility", "type": "embeddedUI", "srcEntry": "./ets/EmbeddedUIExtAbility/EmbeddedUIExtAbility.ts" } ] } }