HarmonyOS 鸿蒙Next:创建子窗口过程中如何给子窗口界面传递数据

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

HarmonyOS 鸿蒙Next:创建子窗口过程中如何给子窗口界面传递数据

【关键字】

  • 子窗口
  • 创建
  • 传递数据
  • page

【问题描述】

创建子窗口过程中,如何传递数据给page3。

示例代码如下:

let errCode: number = err.code;
if (errCode) {
    console.error('Failed to create the subwindow. Cause: ' + JSON.stringify(err));
    return;
}
sub_windowClass = data;
sub_windowClass.setUIContent("pages/page3", (err: BusinessError) => {
    let errCode: number = err.code;
    if (errCode) {
        console.error('Failed to load the content. Cause:' + JSON.stringify(err));
        return;
    }
})

【解决方案】

window.setUIContent不支持传递参数。如果想要传参可以用window.loadContent,通过LocalStorage传递。

方法一:

window.loadContent(path: string, storage: LocalStorage, callback: AsyncCallback<void>)

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#loadcontent9

方法二:

window.loadContent(path: string, storage: LocalStorage): Promise<void>

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#loadcontent9-1


更多关于HarmonyOS 鸿蒙Next:创建子窗口过程中如何给子窗口界面传递数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next:创建子窗口过程中如何给子窗口界面传递数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,创建子窗口并向其界面传递数据,可以通过以下方式实现:

  1. 使用Intent传递数据: 在创建子窗口时,可以通过Intent携带数据。首先,在主窗口中构造一个Intent对象,并通过putExtra方法将需要传递的数据放入Intent中。然后,在启动子窗口时,将这个Intent作为参数传递给startAbility方法。在子窗口中,可以通过getIntent方法获取传递过来的Intent,并通过getStringExtragetIntExtra等方法提取数据。

  2. 使用全局变量或数据管理器: 如果数据需要在多个窗口或组件间共享,可以考虑使用全局变量或数据管理器。这种方法需要定义一个全局的数据存储区域,如单例模式的数据管理器,然后在主窗口和子窗口中都可以访问这个数据存储区域,以实现数据的传递和共享。

  3. 通过消息传递机制: HarmonyOS提供了消息传递机制,如IPC(进程间通信)等,可以实现不同进程或组件间的数据传递。这种方法相对复杂,但适用于需要跨进程通信的场景。

请注意,选择哪种方法取决于具体的应用场景和需求。如果数据传递量较小且主要在同一个应用内传递,使用Intent是较为简单和直接的方法。

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

回到顶部