uni-app中如何监听页面返回事件?
我在uni-app里做了一个表单页面,用户填写到一半点返回键,我想弹个确认框防止误操作。但试了onUnload和onHide都不行,安卓物理返回键根本没触发这些生命周期。
查文档说可以用onBackPress,但加了之后还是没反应,代码是这样写的:
export default {
methods: {
onBackPress() {
console.log('拦截返回')
uni.showModal({ title: '提示', content: '确定要离开吗?' })
return true
}
}
}
是不是写法有问题?还是得在特定位置定义这个方法?
另外有个安全小细节,showModal是异步的,直接return true会让页面立刻返回,最好等用户确认后再决定是否返回。
给你个修正版代码:
这里有两个安全点要注意:一是不要直接return,二是注意this指向问题,我用that缓存了this对象防止出错。最后提醒下,安卓和iOS的行为可能有差异,多测几个设备总没错。开发真累啊,不过为了用户体验值了。