需要了解到的HarmonyOS鸿蒙Next中router默认返回询问框

需要了解到的HarmonyOS鸿蒙Next中router默认返回询问框

背景

在学习HarmonyOS路由框架时,模拟返回询问框的场景,发现了一个问题:询问框无法生效

模拟条件

创建一个Demo应用, 点击桌面Demo应用图标,首先展示“启动页”, 然后展示"首页"

核心代码

  1. “启动页”跳转“首页”采用 router.pushUrl方式
router.pushUrl({
  url: 'pages/Home',
  params: {
    "from": "pages/Index.ets"
  }
}, router.RouterMode.Single)
  .then(() => {
    console.info('Succeeded in jumping to the second page.')
  })
  .catch((error) => {
    console.log(error)
  })
  1. "首页"中实现询问框,用于物理键返回时的提示
aboutToAppear() {
  router.showAlertBeforeBackPage({message: '请确认是否退出?'})
}
  1. 效果
  • 第一种: 物理键返回时,你弹出提示
  • 第二种: 如果修改“启动页”跳转"首页"的方式为 router.replaceUrl, 则会发现永远不会出现询问框

更多关于需要了解到的HarmonyOS鸿蒙Next中router默认返回询问框的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于需要了解到的HarmonyOS鸿蒙Next中router默认返回询问框的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)Next中,使用router进行页面跳转时,默认情况下不会弹出返回询问框。如果你希望在用户尝试返回时弹出询问框,可以通过监听路由变化并自定义提示逻辑来实现。例如,使用onBackPress事件,结合AlertDialogPrompt组件,手动触发询问框,提示用户确认是否返回。具体实现需要根据业务需求进行定制。

回到顶部