需要了解到的HarmonyOS鸿蒙Next中router默认返回询问框
需要了解到的HarmonyOS鸿蒙Next中router默认返回询问框
背景
在学习HarmonyOS路由框架时,模拟返回询问框的场景,发现了一个问题:询问框无法生效
模拟条件
创建一个Demo应用, 点击桌面Demo应用图标,首先展示“启动页”, 然后展示"首页"
- 创建应用入口的UIAbility
- 创建“启动页”ets文件, 添加注解@Entry @Component
- 创建"首页" ets 文件,添加注解@Entry @Component
核心代码
- “启动页”跳转“首页”采用 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)
})
- "首页"中实现询问框,用于物理键返回时的提示
aboutToAppear() {
router.showAlertBeforeBackPage({message: '请确认是否退出?'})
}
- 效果
- 第一种: 物理键返回时,你弹出提示
- 第二种: 如果修改“启动页”跳转"首页"的方式为 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
事件,结合AlertDialog
或Prompt
组件,手动触发询问框,提示用户确认是否返回。具体实现需要根据业务需求进行定制。