HarmonyOS 鸿蒙Next中Ability的windowStage.loadContent(pages MeetingPage)如何传递参数给page
HarmonyOS 鸿蒙Next中Ability的windowStage.loadContent(pages MeetingPage)如何传递参数给page 在Ability中windowStage.loadContent(pages MeetingPage)如何传递参数给page
在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)。若要向该页面传递参数,可以通过以下几种方式实现:
-
全局变量或单例模式: 可以在应用的全局范围内定义一个变量或单例类,用于存储需要传递的数据。在调用
loadContent
前,将数据设置到该变量或单例中。然后在MeetingPage
的onStart
或onActive
方法中读取这些数据。 -
Intent传递: 虽然
windowStage.loadContent
不直接支持通过Intent传递参数,但可以考虑在应用架构设计时,通过其他方式(如Ability间的跳转)先传递参数,再由该Ability通过windowStage.loadContent
加载页面。这种方式下,参数可以在Ability间通过Intent传递。 -
页面构造函数或初始化方法: 如果
MeetingPage
类允许,可以通过修改其构造函数或增加一个初始化方法,允许在创建页面实例时直接传递参数。然后,在调用loadContent
时,创建MeetingPage
实例并传入参数。
注意,具体实现方式需根据 MeetingPage
的设计和应用需求来选择。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,