HarmonyOS 鸿蒙Next中Ability的windowStage.loadContent(pages MeetingPage)如何传递参数给page

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

HarmonyOS 鸿蒙Next中Ability的windowStage.loadContent(pages MeetingPage)如何传递参数给page 在Ability中windowStage.loadContent(pages MeetingPage)如何传递参数给page

2 回复

在ability中声明并设置 LocalStorage 的值,在loadContent 时将LocalStorage 做为参数传

private localStorage: LocalStorage = new LocalStorage()

onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
  let targetPageType = want?.parameters?.['targetPageType']
  this.localStorage.setOrCreate('targetPageType', targetPageType)
}

onWindowStageCreate(windowStage: window.WindowStage): void {

  // Main window is created, set main page for this ability 
  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
  windowStage.loadContent('pages/Index', this.localStorage, (err) => {
    if (err.code) {
      hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
      return;
    }
    hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');
  });
}

在ets中接受参数,如果ts中没有设置,就会使用默认值,pageType的默认值是空字符串:

let storage = LocalStorage.GetShared()
@Entry(storage) struct Index
{
  @LocalStorageLink('targetPageType') pageType: string = ''
}

更多关于HarmonyOS 鸿蒙Next中Ability的windowStage.loadContent(pages MeetingPage)如何传递参数给page的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,windowStage.loadContent(pages MeetingPage) 方法用于加载指定的页面(AbilityPage)。若要向该页面传递参数,可以通过以下几种方式实现:

  1. 全局变量或单例模式: 可以在应用的全局范围内定义一个变量或单例类,用于存储需要传递的数据。在调用 loadContent 前,将数据设置到该变量或单例中。然后在 MeetingPageonStartonActive 方法中读取这些数据。

  2. Intent传递: 虽然 windowStage.loadContent 不直接支持通过Intent传递参数,但可以考虑在应用架构设计时,通过其他方式(如Ability间的跳转)先传递参数,再由该Ability通过 windowStage.loadContent 加载页面。这种方式下,参数可以在Ability间通过Intent传递。

  3. 页面构造函数或初始化方法: 如果 MeetingPage 类允许,可以通过修改其构造函数或增加一个初始化方法,允许在创建页面实例时直接传递参数。然后,在调用 loadContent 时,创建 MeetingPage 实例并传入参数。

注意,具体实现方式需根据 MeetingPage 的设计和应用需求来选择。

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

回到顶部