HarmonyOS 鸿蒙Next 使用Navigation进行导航的web组件,onBackPress不生效

发布于 1周前 作者 yuanlaile 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 使用Navigation进行导航的web组件,onBackPress不生效

 onBackPress() {
console.log(‘点击了后退’)
// 当前页面是否可前进或者后退给定的step步(-1),正数代表前进,负数代表后退
if (this.controller.accessStep(-1)) {
console.log(‘可以后退…’)
this.controller.backward(); // 返回上一个web页
// 执行用户自定义返回逻辑
return true;
} else {
// 执行系统默认返回逻辑,返回上一个page页
return false;
}
}
…
NavDestination() {
Column() {
Web({
src: this.url,
controller: this.controller
}).domStorageAccess(true)
.onPageBegin(() => {
console.time(‘link:useTime’)
})
.onPageEnd(() => {
console.timeEnd(‘link:useTime’)
})
}.hideTitleBar(true) 

web组件是被NavDestination包裹的。进行H5的页面跳转时,重写了onBackPress,任然没法进行正常的返回。即使组件使用了@Entry修饰


更多关于HarmonyOS 鸿蒙Next 使用Navigation进行导航的web组件,onBackPress不生效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复
在NavDestination组件后面加监听
NavDestination() {
}
.onBackPressed(() => {
// 拦截的代码
return true
})

更多关于HarmonyOS 鸿蒙Next 使用Navigation进行导航的web组件,onBackPress不生效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


感谢 可以了

在HarmonyOS中使用Navigation进行导航时,如果遇到onBackPress不生效的问题,首先确保你的Navigation设置正确,包括正确配置了路由和Fragment/Page的跳转关系。此外,检查onBackPress的调用是否在合适的生命周期或导航流程中被触发。

可能的原因包括:

  1. 导航图(Navigation Graph)配置错误。
  2. onBackPress方法被覆盖但未正确实现。
  3. 当前页面没有正确设置为Navigation的目的地。

如果问题依旧没法解决请加我微信,我的微信是itying888。

更多关于HarmonyOS 鸿蒙Next 使用Navigation进行导航的web组件,onBackPress不生效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


回到顶部