当前位置:   article > 正文

【HarmonyOS NEXT】router.pushNamedRoute子模块与主模块跳转无法同时兼容_鸿蒙 router.pushurl 没有跳转

鸿蒙 router.pushurl 没有跳转

【关键字】

router.pushNamedRoute / router.pushUrl / HSP

【问题描述】

通过router.pushNamedRoute在主工程页面跳转到其他模块后,其他模块的页面使用router.pushUrl跳转方法失效,存在子模块与主模块跳转无法同时兼容的问题。

直接启动Testapplication子模块可以跳转,pushUrl方法正常,从主入口通过以下方式进入,pushUrl跳转无效。

具体示例代码如下:

  1. 主模块Index页面代码:
  2. import ('@BOB/Testapplication/src/main/ets/pages/album')
  3. import router from '@ohos.router';
  4. //执行该方法跳转到子模块'album'页面
  5. router.pushNamedRoute({
  6. name: 'album', //入口名称
  7. })
  8. Testapplication子模块album页面代码:
  9. import router from '@ohos.router';
  10. @Entry ({ routeName : 'album' })
  11. @Component
  12. struct ablum {
  13. @State message: string = 'Hi album'
  14. build() {
  15. Row() {
  16. Column() {
  17. Text(this.message)
  18. .fontSize(50)
  19. .fontWeight(FontWeight.Bold)
  20. Button("pushUrl跳转albumFirst",{ type: ButtonType.Normal, stateEffect: true })
  21. .borderRadius(8)
  22. .backgroundColor(0x317aff)
  23. .width(150)
  24. .height(60)
  25. .margin(20)
  26. .onClick(()=>{
  27. router.pushUrl({
  28. url: 'pages/albumFirst',
  29. // params: new routerParams(this.pageName ,[])
  30. })//默认模式
  31. })
  32. .width('100%')
  33. // .alignItems(HorizontalAlign.Center)
  34. // .justifyContent(FlexAlign.Start)
  35. }
  36. }
  37. .height('100%')
  38. }

【解决方案】

当跳转的目标页面属于HSP时(包括HSP页面跳HSP页面),需要使用特定写法。

具体参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/in-app-hsp-0000001774119898#ZH-CN_TOPIC_0000001774119898__%E9%A1%B5%E9%9D%A2%E8%B7%AF%E7%94%B1%E8%B7%B3%E8%BD%AC

也可以使用路由命名的形式实现,@bundle的方面只支持跳转hsp页面,路由命名支持跳转到HAP、HSP、HAR的页面。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/310246?site
推荐阅读
相关标签
  

闽ICP备14008679号