HarmonyOS 鸿蒙Next 创建子窗口,如何给子窗口界面传递数据

发布于 1周前 作者 htzhanglong 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 创建子窗口,如何给子窗口界面传递数据

WindowStage.createSubWindow(“mySubWindow”, (err: BusinessError, data) => {
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;
}
}) 

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


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

2 回复

window.setUIContent不支持传递参数。如果想要传参可以用window.loadContent,通过LocalStorage传递。
● window.loadContent(path: string, storage: LocalStorage, callback: AsyncCallback<void>),

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

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

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


在HarmonyOS鸿蒙Next中,创建子窗口并传递数据可以通过以下方式实现:

  1. 使用Intent

    • 创建一个Intent对象,并通过putExtra方法将数据放入Intent中。
    • 调用startAbility方法启动子窗口(Ability),并将Intent传递给它。
    • 在子窗口的onNewIntentonStart方法中,通过getIntent方法获取传递的Intent,并使用getStringgetInt等方法取出数据。
  2. 使用全局变量或单例模式

    • 定义全局变量或单例类来存储需要传递的数据。
    • 在创建子窗口前,将数据存入全局变量或单例对象中。
    • 在子窗口的onCreateonStart方法中,从全局变量或单例对象中获取数据。
  3. 使用事件总线

    • 引入事件总线库(如EventBus),定义事件和数据载体。
    • 在父窗口中发布事件,携带需要传递的数据。
    • 在子窗口中订阅该事件,并在事件回调中获取数据。
  4. 使用数据绑定(Data Binding)

    • 如果子窗口是通过XML布局方式嵌入的,可以使用数据绑定技术将父窗口的数据直接绑定到子窗口的视图上。

示例代码因具体实现而异,请根据实际情况选择合适的方法。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部