夏子日记
夏子日记
  • 发布:2021-05-10 15:43
  • 更新:2024-11-21 20:15
  • 阅读:10471

uniapp的onBackPress为什么不会触发

分类:uni-app

直接不走这个onBackPress,怎么解决?

2021-05-10 15:43 负责人:DCloud_UNI_CHB 分享
已邀请:
z***@cndatacom.com

z***@cndatacom.com

同问,坑死了

t***@qq.com

t***@qq.com

麻蛋,uniapp坑超级多,天天填坑.都想放弃了

yoooo

yoooo

当前页面栈 大于 1 才生效。如第一次就打开 用户中心 页面,然后从 用户中心 redirectTo 跳转到登录页,这时在登录页 的 onBackPress 是不会触发的

let pages = getCurrentPages();  
console.log( pages.length );// 需大于1

否则不会触直接跳转到首页。确实有点坑坑坑坑坑坑坑!!!!

  • 1***@qq.com

    23年了,官方还不修复这个bug,醉了也是。

    2023-04-11 14:31

  • 2***@qq.com

    回复 1***@qq.com: 兄弟你解决了吗

    2023-08-17 11:24

DCloud_heavensoft

DCloud_heavensoft

注意看文档的平台兼容性说明,截止到回帖时间,只有app、H5、支付宝小程序这3个平台支持。其他平台自身就不提供

  • 侠客请接刀s

    真能支持这三个平台 也不会有那么多人问了

    2021-11-22 10:05

  • 1***@qq.com

    我试了app,h5都不支持,返回true,默认事件不执行,自定义的事件也不执行。。。

    2021-12-09 11:02

  • 2***@qq.com

    我说我微信试了那么久没用

    2023-02-08 15:41

  • 5***@qq.com

    你测试过了吗,h5根本就不支持。

    2024-11-05 10:04

梁山佬酒

梁山佬酒

为什么onBackPress物理键触发后 执行触发后 在触发就不执行了 需要再次触发 等于我摁了三次物理键只触发了两次

machi的奶茶

machi的奶茶 - 披风前行

如果想要在微信小程序里处理返回逻辑

可以通过 onUnload 方法,同样也可以达到效果

onUnload() {  
    // #ifdef MP-WEIXIN  
        //监听返回的逻辑  
    if (this.isEditTemplate) {  
        this.$refs.alertDialog.open();  
    }  
    // #endif  
},
  • 4***@qq.com

    给你点赞,测了两天的onBackPress,还以为是我调安卓的方法没执行,结果是这个鸟onBackPress在页面栈只有一个的时候不执行

    2023-06-15 14:16

2***@qq.com

2***@qq.com

同问

2***@qq.com

2***@qq.com

`楼主解决了吗

sanheyuncang

sanheyuncang

楼主解决了吗?

1***@qq.com

1***@qq.com

return. false才是执行

yoooo

yoooo

**** 暂时解决办法

//user页面 判断 页面栈 然后改变跳转方式  
let url = "/pages/login/index";  
let len = getCurrentPages().length;  
if(len < 2) {  
    uni.navigateTo({url});//缺点: 如果login页面不是使用uni.navigateBack()返回会导致user页面有多个栈  
}else {  
    uni.redirectTo({url});  
}
k***@163.com

k***@163.com

我们开发钉钉微应用页面之间跳转全部使用redirectTo,现在要监听这个onBackPress,不触发咋整

JiyunXin

JiyunXin

我的是安卓可以,iOS右滑动还是返回了,导致首页经常回到首页去。

2***@qq.com

2***@qq.com

安卓没效果
uniapp 全是坑

y***@gmail.com

y***@gmail.com

安卓上面全是坑,跳转各种问题

2***@qq.com

2***@qq.com

亲测有效
// #ifdef H5
uni.addInterceptor('navigateBack',{
invoke(e){
let pages = getCurrentPages();
if (pages.length>1) return e
history.back();
return false
}
})
// #endif
只测了h5

要回复问题请先登录注册