HarmonyOS 鸿蒙Next 模块化开发时,页面之间如何跳转
HarmonyOS 鸿蒙Next 模块化开发时,页面之间如何跳转
通过har方式模块化开发时,页面之间如何跳转。主模块如何使用 router.pushUrl
路由到子模块的页面
2 回复
如果想在模块A跳转模块B的某个页面,可以通过router.pushUrl({url: "xxx"})
。
url路径需要按照以下格式拼接:
@bundle:包名(bundleName)/模块名(moduleName)/页面相对路径(以main文件夹为起点)
例如:
@bundle:com.xxx.xxx/debug/ets/pages/Index
上面方法是hsp包跳转方式,跳转的页面需要是在模块B中main_pages.json的页面。
har包的跳转方式为:
import("@ohos/har/src/main/ets/components/mainpage/MainPage") // 引入共享包中的命名路由页面
Button("router to har")
.onClick(() => { // 点击跳转到其他共享包中的页面
console.info("22")
router.pushNamedRoute({
name: 'myPage',
})
// router.pushUrl({ url: '@bundle:com.example.router_har/hsp/ets/pages/Index' })
})
A模块中oh-package.json文件下引入har包:
"dependencies": {
"@ohos/har": "../har"
}
B模块:
@Entry({ routeName: 'myPage' })
@Component
export struct MainPage {
@State message: string = "har包页面";
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
}
.width('100%')
}
}
可参考文档: 页面路由跳转
更多关于HarmonyOS 鸿蒙Next 模块化开发时,页面之间如何跳转的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html