7***@qq.com
7***@qq.com
  • 发布:2020-09-02 16:55
  • 更新:2022-09-18 23:18
  • 阅读:2969

【报Bug】在onBackPress中使用uni.navigateBack()无效

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.15.6

HBuilderX类型: 正式

HBuilderX版本号: 2.8.8

浏览器平台: Chrome

浏览器版本: 85.0.4183.83

项目创建方式: HBuilderX

操作步骤:

onBackPress() {
uni.showModal({
title: '确认退出',
content: '内容未保存,是否确认退出?',
confirmText: '确认',
success: (res) => {
if(res.confirm){
uni.navigateBack();
}
}
})
return true;//阻止默认返回事件
},

预期结果:

左上角返回和物理返回键返回时,提示用户内容未保存,用户确认之后返回上一页面

实际结果:

确认框弹出来之后点击确认无任何反应

bug描述:

在浏览器中, 截获返回事件onBackPress中,使用uni.navigateBack()不能返回上一个页面,并且页面有时会卡顿一下

2020-09-02 16:55 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com (作者) - 90后IT男

官方大佬给个回复啊

  • galary369

    你好 这个问题解决了吗

    2021-06-04 17:04

郭加明

郭加明

也是这个问题

galary369

galary369

怎么解决的,遇到一样的问题

3***@qq.com

3***@qq.com -

onBackPress(options) {//监听页面返回
if(options.from ==='navigateBack'&&this.back){
return false
}
uni.showModal({
title: '温馨提示',
content: '请确认客户是否放弃支付?',
success: function (res) {
var that = this
if (res.confirm) {
// plus.runtime.quit();
that.back=true
uni.navigateBack({});
} else if (res.cancel) {
return true;
}
}.bind(this)
});
return true;
},//已成功,但是无法监测小米侧滑返回

wcomdex

wcomdex

由于 uni.navigateBack() 同样会触发 onBackPress 函数。因此在 onBackPress 中直接调用 uni.navigateBack() 并始终返回 true 会引发死循环。
此时,需要根据 onBackPress 的回调对象中的 from 值来做处理,当来源是 'navigateBack' 时,返回 false。

该问题目前已经被锁定, 无法添加新回复