HarmonyOS鸿蒙Next中UIExtensionComponent拉起UIExtensionAbility,如何透过UIExtensionAbility展示拉起方的内容

HarmonyOS鸿蒙Next中UIExtensionComponent拉起UIExtensionAbility,如何透过UIExtensionAbility展示拉起方的内容

2 回复

在HarmonyOS鸿蒙Next中,UIExtensionComponent拉起UIExtensionAbility后,可以通过want参数传递拉起方的数据。在UIExtensionAbilityonCreate()方法中接收want参数,解析其中携带的数据。使用UIExtensionContextstartAbility()方法返回数据给拉起方。UIExtensionAbility可通过窗口管理接口创建悬浮窗或分屏显示内容,窗口内容由UIExtensionAbility自身控制。数据交互建议使用want参数或共享对象。

更多关于HarmonyOS鸿蒙Next中UIExtensionComponent拉起UIExtensionAbility,如何透过UIExtensionAbility展示拉起方的内容的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,要实现UIExtensionAbility弹窗展示拉起方内容,可以通过以下方式实现:

  1. 使用透明背景: 在UIExtensionAbility的布局文件中设置弹窗背景为透明,这样下层Activity内容会自然透出。例如:
<DirectionalLayout
    ...
    ohos:background_element="#00000000">
  1. 共享数据: 通过want参数传递拉起方的界面信息:
// 拉起方
let want = {
    bundleName: "com.example.uiextension",
    abilityName: "UIExtensionAbility",
    parameters: {
        "sourceContent": "需要展示的内容"
    }
};
this.context.startAbility(want);
  1. 窗口属性设置: 在UIExtensionAbility中配置窗口属性:
onWindowStageCreate(windowStage: window.WindowStage) {
    let windowClass = windowStage.getMainWindowSync();
    windowClass.setWindowBackgroundColor('#00000000');
    windowClass.setWindowLayoutFullScreen(true);
}
  1. 使用半透明效果: 可以通过设置布局的透明度来达到半透明效果:
<DirectionalLayout
    ohos:alpha="0.7"
    ...>

注意确保UIExtensionAbility的配置中声明了透明主题支持。这种方式能有效展示下层内容同时保持弹窗功能。

回到顶部