HarmonyOS 鸿蒙Next 怎么实现从子窗口返回到当前主窗口

发布于 1周前 作者 phonegap100 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 怎么实现从子窗口返回到当前主窗口

如何实现:以悬浮窗的形式写了一个子窗口,点击子窗口里面的button能够返回当前主窗口页面。

写了三个主窗口,page1,page2,page3,当我在page2的页面进入了子窗口里面,从子窗口退出后能够返回page2,同理page1进入返回page1,page3进入返回page3。

子窗口是全局定义的entryability,每个页面都看得见。


更多关于HarmonyOS 鸿蒙Next 怎么实现从子窗口返回到当前主窗口的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

创建WindowType.TYPE_FLOAT即悬浮窗类型的窗口,需要申请ohos.permission.SYSTEM_FLOAT_WINDOW权限,该权限为受控开放权限,仅符合指定场景的在2in1设备上的应用可申请该权限。

在其他设备或场景下,请使用画中画功能,使用方式参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/pipwindow-overview-V13

开发应用子窗口可参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/application-window-stage-V13#设置应用子窗口

更多关于HarmonyOS 鸿蒙Next 怎么实现从子窗口返回到当前主窗口的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS 鸿蒙Next中,实现从子窗口返回到当前主窗口,可以通过以下方式:

  1. 使用Intent和Ability

    • 在子窗口中,使用Intent对象设置返回的目标主窗口的Ability信息。
    • 调用startAbility方法并传入该Intent,设置标志位为AbilityLaunchFlag.FLAG_ABILITY_FORWARD_RESULT,这样可以在返回时传递数据(如果需要)。
    • 在主窗口中,通过onAbilityResult方法接收来自子窗口的结果(如果有)。
  2. 直接调用窗口管理器

    • 通过鸿蒙系统的窗口管理API,获取当前窗口管理器实例。
    • 使用窗口管理器提供的接口,如closeSubWindownavigateToMainWindow(假设存在,具体API名称需查阅鸿蒙文档),直接关闭子窗口并返回到主窗口。
  3. 事件传递机制

    • 利用鸿蒙系统的事件总线或消息队列机制,在子窗口中发布一个返回事件。
    • 主窗口监听该事件,当事件被触发时,执行返回逻辑。

示例代码(简化版,具体实现需参考API文档):

// 子窗口中
Intent intent = new Intent();
intent.setElement(new ElementName(mainPackageName, mainAbilityName));
startAbility(intent, AbilityLaunchFlag.FLAG_ABILITY_FORWARD_RESULT);

// 主窗口中(如果有返回结果需要处理)
@Override
protected void onAbilityResult(int requestCode, int resultCode, Intent resultData) {
    // 处理返回结果
}

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部