有没有HarmonyOS鸿蒙Next类似苹果的App Extension组件,支持三方app嵌入ExtensionUI?
有没有HarmonyOS鸿蒙Next类似苹果的App Extension组件,支持三方app嵌入ExtensionUI? 苹果APP Extension组件链接https://developer.apple.com/documentation/extensionfoundation/appextension/
尊敬的开发者,您好!
请问您是在什么样的业务场景中使用该能力,交互流程是怎样的,在哪一个环节遇到了问题?方便说明能力不满足可能带来的影响:什么时间用到?是否高频?有无三方库可以做到?若提供该能力,是否会造成大工作量返工?请您注意提供的内容不要包含您或第三方的非公开信息,如给您带来不便,敬请谅解。
更多关于有没有HarmonyOS鸿蒙Next类似苹果的App Extension组件,支持三方app嵌入ExtensionUI?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
ExtensionAbility组件里面的各种应该是类似的
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/extensionability-overview
ArkTS卡片概述
以下内容介绍基于ArkTS声明式开发范式语言开发卡片。
亮点/特征
-
统一开发范式
- ArkTS卡片统一了卡片和应用页面的开发范式,应用页面的布局可以直接复用到卡片布局中,提升开发体验和开发效率。具体请参考图1 卡片工程结构对比。
图1 卡片工程结构对比

-
卡片能力增强
实现原理
- 卡片使用方:显示卡片内容的宿主应用,控制卡片在宿主中展示的位置,当前仅系统应用可以作为卡片使用方。
- 卡片提供方:提供卡片显示内容的应用,控制卡片的显示内容、控件布局以及控件点击事件。
- 卡片管理服务:用于管理系统中所添加卡片的常驻代理服务,提供formProvider的接口能力,同时提供卡片对象的管理与使用以及卡片周期性刷新等能力。
- 卡片渲染服务:用于管理卡片渲染实例,渲染实例与卡片使用方的卡片组件一一绑定。卡片渲染服务根据form_config.json配置的卡片信息运行widget.abc文件的卡片页面代码进行渲染,并将渲染后的数据发送至卡片使用方对应的卡片组件。
HarmonyOS Next提供ExtensionAbility机制,支持三方应用嵌入扩展功能。通过UIExtensionComponent组件可实现宿主应用加载三方提供的UI界面。该机制基于Stage模型,支持JS/ETS开发,使用ArkTS语言。具体涉及UIExtensionAbility生命周期管理和组件通信能力。
是的,HarmonyOS Next 提供了类似的功能,称为 “服务卡片” 和 “原子化服务”。
核心对应关系:
- App Extension (UI类型,如Widget) 主要对应:服务卡片。这是一个独立的UI展示单元,可以嵌入到系统桌面或其他应用(作为“卡片提供方”)中,由三方应用开发并提供内容。
- App Extension (功能类型) 的理念对应:原子化服务。这是一种免安装、即点即用的服务形态,其核心功能可以独立运行或被其他应用便捷调用。
具体实现方式:
-
服务卡片:
- 开发者可以创建一个
FormExtensionAbility,它负责卡片的生命周期管理和数据更新。 - 卡片UI使用ArkUI编写,有特定的组件规范和开发范式。
- 卡片可以配置多种尺寸模板,并支持动态更新。
- 用户可以将卡片添加到桌面,实现信息外显和快速交互。
- 开发者可以创建一个
-
跨应用UI共享与嵌入:
- HarmonyOS通过UIAbility组件和Want机制实现跨应用拉起与交互。
- 虽然不能像某些系统那样直接将一个应用的UI片段嵌入到另一个应用的进程空间内,但可以通过启动另一个应用的特定UIAbility(并可能传递数据)来无缝衔接功能与界面,实现类似“嵌入”的用户体验。这更符合HarmonyOS的安全和进程模型。
与苹果App Extension的主要区别:
- 架构理念:HarmonyOS更强调“服务”的原子化和独立分发(原子化服务),以及UI的卡片化(服务卡片)。苹果的App Extension更侧重于在宿主应用上下文内扩展功能。
- 集成方式:服务卡片主要集成于桌面系统。跨应用功能调用通过清晰的Ability拉起机制实现,而非在宿主应用内直接运行扩展代码。
- 开发范式:需遵循HarmonyOS的Ability、ArkUI及卡片开发规范。
总结: 如果您希望实现三方应用提供UI组件供系统或其他应用桌面展示,应重点开发服务卡片。 如果您希望实现三方应用的功能能被其他应用便捷调用和衔接,应基于UIAbility和原子化服务进行设计。
相关开发文档请查阅华为开发者官网的“服务卡片”与“原子化服务”部分。

