HarmonyOS鸿蒙Next中在hsp模块中使用pushUrl跳转同hsp模块的其他页面
HarmonyOS鸿蒙Next中在hsp模块中使用pushUrl跳转同hsp模块的其他页面 在某个hsp模块中,使用pushUrl跳转同hsp所在的其他页面,如果直接填写main_pages.json文件中注册的路径,会报错,无法找到页面,示例如下:
// 某个hsp模块中
Button(`hap 页面1 资源定位`).width('80%').margin({ top: 10, bottom: 10 })
.onClick(() => {
this.getUIContext().getRouter().pushUrl({
// url 不加包名和模块名,会直接从 hap 中寻找页面
url: 'a_component_router/00_常用_常用展示示例/004_常用_使用命名路由和动态导入跳转/Page01'
});
})
这是因为直接填写页面的路径的话,会在hap(即entry)包中根据路径来查找页面,而不会在hsp模块中查找。
要想使用pushUrl跳转同hsp所在的其他页面,需要把bundleName、moduleName填写完整,具体格式如下:
"@bundle:[bundleName]/[moduleName]/ets/页面路径"
示例如下:
// hsp 跳转 同hsp,使用 资源定位
Button(`hsp_test1 页面1 资源定位`).width('80%').margin({ top: 10, bottom: 10 })
.onClick(() => {
// 通过 url 跳转到 同hsp 页面,需要填写完整的路径,格式为 "@bundle:[bundleName]/[moduleName]/ets/页面路径"
// com.example.temporarytest:这个是bundleName
// hsp_test1:这个是moduleName
// ets/a_component_router/00_常用_常用展示示例/004_常用_使用命名路由和动态导入跳转/Page01:这个是目标页面在模块中的路径
this.getUIContext().getRouter().pushUrl({
url: '@bundle:com.example.temporarytest/hsp_test1/ets/a_component_router/00_常用_常用展示示例/004_常用_使用命名路由和动态导入跳转/Page01'
});
})
更多关于HarmonyOS鸿蒙Next中在hsp模块中使用pushUrl跳转同hsp模块的其他页面的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于HarmonyOS鸿蒙Next中在hsp模块中使用pushUrl跳转同hsp模块的其他页面的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,使用pushUrl
进行页面跳转时,如果目标页面位于同一个HSP(HarmonyOS Shared Package)模块中,可以直接使用相对路径或绝对路径进行跳转。确保目标页面已正确配置路由,并在config.json
中注册。示例代码如下:
router.pushUrl({
url: 'pages/TargetPage' // 相对路径
});
或
router.pushUrl({
url: 'hsp://com.example.mymodule/pages/TargetPage' // 绝对路径
});
确保目标页面的路由配置与pushUrl
中的路径一致。