【HarmonyOS NEXT】router.pushNamedRoute子模块与主模块跳转无法同时兼容

【关键字】

pushNamedRoute / 跳转模块 / router.pushUrl / 跳转失效

【问题描述】

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

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

主模块Index页面代码:

import ('@BOB/Testapplication/src/main/ets/pages/album')
import router from '@ohos.router';
//执行该方法跳转到子模块'album'页面
router.pushNamedRoute({
name: 'album', //入口名称
})

Testapplication子模块album页面代码:

import router from '@ohos.router';

@Entry ({ routeName : 'album' })
@Component
struct ablum {
@State message: string = 'Hi album'
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button("pushUrl跳转albumFirst",{ type: ButtonType.Normal, stateEffect: true })
.borderRadius(8)
.backgroundColor(0x317aff)
.width(150)
.height(60)
.margin(20)
.onClick(()=>{
router.pushUrl({
url: 'pages/albumFirst',
// params: new routerParams(this.pageName ,[])
})//默认模式
})

.width('100%')
// .alignItems(HorizontalAlign.Center)
// .justifyContent(FlexAlign.Start)
}
}
.height('100%')
}

【解决方案】

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

参考:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V2/in-app-hsp-0000001580025730-V2#ZH-CN_TOPIC_0000001711027156__%E9%A1%B5%E9%9D%A2%E8%B7%AF%E7%94%B1%E8%B7%B3%E8%BD%AC

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

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值