uniapp 开发app监听返回操作

这篇博客探讨了Android和iOS中处理返回按钮和侧滑返回的策略。在Android中,通过onBackPress()阻止默认返回行为。而在iOS中,侧滑返回不触发onBackPress,作者提供了两种方案:一是禁用侧滑并添加返回按钮,二是使用onUnload监听页面卸载。对于无法监听侧滑的情况,建议通过uni.$emit在上一页进行事件通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android

onBackPress() {
  console.log('返回')
  return true;  // 阻止返回 不阻止就不写或者用uni.navigateBack({ delta: 1 })返回
}

IOS

常规后退操作同Android,但是IOS还有个侧滑这个大坑,不会触发onBackPress
再次确认了侧滑不触发onBackPress后,我找了一圈文章后,留下了两个方案。

方案一:popGesture

一不做二不休,直接禁用侧滑,然后再选择以下两种方法之一(时间有限,没空再去想,有更好的方案欢迎评论)
a方法:在左上角(或页面某个合适的地方)留下一个返回按钮
b方法:场景合适的话可以通过touchstarttouchend来模拟侧滑事件(这个只是一个设想,并没有去实施)
popGesture具体配置(pages.json):

{
    "path": "pages/xxx/xxx",
    "style": {
        ...
        "app-plus": {
            "popGesture": "none", // 禁用侧滑
            "bounce": "none" // 禁用上下拖动页面
        }
    }
},
方案二:onUnload

虽然监听不了侧滑,但是onUnload还是可以继续用的,既然如此,就让你继续侧滑退回去我直接 uni.$emit告诉上一页,这货退回去了,不过这个方案的最大问题就是 没办法阻止它返回上一页,只能在返回上一页之后做后续操作。
当前页面:

onUnload(){
  uni.$emit('事件名', 参数);
},

上一级页面:

onShow() {
    uni.$once('事件名', res => {
	      console.log('它返回了'})
}

web端

_φ(❐_❐✧ 没排面 随便写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值