HarmonyOS 鸿蒙Next:Applinking冷启动情况,用windowStage.load动态加载启动页时能否传递参数到加载的页面内,是否有实现的样例代码

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

HarmonyOS 鸿蒙Next:Applinking冷启动情况,用windowStage.load动态加载启动页时能否传递参数到加载的页面内,是否有实现的样例代码

Applinking冷启动情况,用windowStage.load动态加载启动页时 能否传递参数到加载的页面内,是否有实现的样例代码

2 回复

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

export default class EntryAbility extends UIAbility {

  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.');

    });

  }

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

let storage=LocalStorage.GetShared()

@Entry(storage)

struct Index{

@LocalStorageLink('targetPageType') pageType:string=''

针对HarmonyOS 鸿蒙Next中的Applinking冷启动情况,以及使用windowStage.load动态加载启动页时能否传递参数的问题,以下是专业解答:

在HarmonyOS中,通过windowStage.load动态加载页面时,确实可以传递参数到加载的页面内。这通常可以通过页面路由(router)模块或Navigation组件来实现。

具体实现方式如下:

  • 使用router:在调用windowStage.load之前,可以构建包含所需参数的URL,然后通过router模块跳转到该URL。目标页面在加载时,可以从router中获取这些参数。
  • 使用Navigation组件:可以构建NavPathInfo对象,并在其中包含要传递的参数,然后通过Navigation组件的push方法实现页面跳转。

由于篇幅限制,这里不提供完整的样例代码。但你可以参考HarmonyOS的官方文档或开发者社区中的相关教程,找到具体的实现代码。

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

回到顶部