收藏
回答

微信小程序监听返回及阻止页面返回

小程序能否实现监听到用户点击小程序顶栏左上角返回后,做挽留弹框提示“资料未保存,是否退出”,如果用户点击弹框上退出按钮则返回上一页,如果用户点击弹框上取消按钮,则停留在当前页面;

回答关注问题邀请回答
收藏

18 个回答

  • kevin梁
    kevin梁
    2018-11-30

    希望官方可以加一个api处理, 来控制页面是否能返回。  毕竟这样的需求还是有的, 不能把路全部给封死了。

    onUnload({ next }) {
      showModal({

        success(confirm){      next(false true)     }

      })  
    }


    2018-11-30
    有用 24
    回复 3
    • 兔六哥
      兔六哥
      2021-09-18
      这么高端的功能,腾讯的团队怕是不行啊
      2021-09-18
      5
      回复
    • 上官逸清
      上官逸清
      2021-09-18回复兔六哥
      有办法让他跳转页面无法返回么,目前需要这个功能
      2021-09-18
      回复
    • jack
      jack
      2022-03-29
      你字逗我 onUnload 这个没用
      2022-03-29
      回复
  • 9293
    9293
    2021-05-12

    结合 page-container 组件可以实现拦截返回啦,亲测成功!!


    2021-05-12
    有用 2
    回复 4
    • 9293
      9293
      2021-05-12
      我平时用wepy开发的,自己基于page-container 封装了个拦截返回的组件,爽哈!
      2021-05-12
      2
      回复
    • 涂之包
      涂之包
      2021-05-13
      方案很好,但兼容不好。
      page-container 基础库 2.16.0 开始支持,这就和难受了,如果做兼容处理就需要做两套方案。就这点来说,不如直接干一套还没那么痛苦
      2021-05-13
      回复
    • ᥬ  ᥬ 😴 ᭄ ᭄
      ᥬ ᥬ 😴 ᭄ ᭄
      05-06
      为什么我的只能拦截一次啊,第二次返回就不生效了
      05-06
      回复
    • 君知否
      君知否
      11-29回复ᥬ ᥬ 😴 ᭄ ᭄
      你好,我也是拦截一次!!! 您后面如何解决的呢
      11-29
      回复
  • HFC梅
    HFC梅
    2021-04-27

    wx.enableAlertBeforeUnload({

    message: "返回上页时弹出对话框1212",

    success: function (res) {

    console.log("方法注册成功:", res)

    },

    fail: function (errMsg) {

    console.log("方法注册失败:", errMsg);

    },

    });


    2021-04-27
    有用 2
    回复 3
    • 麦田的秋。
      麦田的秋。
      2021-06-18
      这个方法给的也是奇葩,不可以自定义按钮文字,用户点击了什么按钮也不返回。。
      2021-06-18
      回复
    • 大洪
      大洪
      2021-08-18
      这个方法只是监听返回键的操作,并询问作出唯一两种选择:要么留在本页面(留下来后的操作没有地方让你自定义留下的操作),要么确定后直接退出当前页面。我是想按返回键后在当前页面作一些类似刷新的操作。但这API函数没有地方让你写代码能执行的。比如说在sucess里写任何代码它都不认的。
      2021-08-18
      1
      回复
    • Koi
      Koi
      2023-03-02
      这个对苹果手机物理返回无效啊
      2023-03-02
      回复
  • 王二
    王二
    2021-03-25

    在onUnload里面又跳转到本页面 😁

    2021-03-25
    有用 2
    回复 1
    • 大陈: Done is Better
      大陈: Done is Better
      2021-10-10
      不完美,屏幕会闪一下再回来,有点奇葩。但勉强能解决。
      2021-10-10
      回复
  • D.K
    D.K
    2018-09-19

    直接redirectTo到这个页面,返回都不给用户返回 #滑稽~

    2018-09-19
    有用 2
    回复 5
    • Antony
      Antony
      2019-06-24

      这操作也太秀了吧 #滑稽

      2019-06-24
      回复
    • 偷得浮生半日闲
      偷得浮生半日闲
      2019-11-29
      小程序自带的返回键给隐藏掉么  还是手机的返回键也隐藏掉
      2019-11-29
      1
      回复
    • 搁浅、过去
      搁浅、过去
      2020-04-09
      大兄弟真机智!!!!6666666
      2020-04-09
      1
      回复
    • Allen
      Allen
      2020-05-11
      ios手势返回,android硬键盘返回,期待有个方案
      2020-05-11
      1
      回复
    • 小蜜蜂
      小蜜蜂
      2020-05-24
      那样的话,点左上角就直接退出了,显示旧页面的时候会卡顿,还不如 navigateTo
      2020-05-24
      回复
  • fun
    fun
    2020-06-19
    "navigationStyle":"custom",
    "mp-navigation-bar": "/miniprogram_npm/weui-miniprogram/navigation-bar/navigation-bar"
    

    使用扩展组件可以解决https://developers.weixin.qq.com/miniprogram/dev/extended/weui/navigation.html

    2020-06-19
    有用 1
    回复
  • 云剑☀
    云剑☀
    2020-10-07

    自定义nav delta = 0

    2020-10-07
    有用
    回复
  • 小蜜蜂
    小蜜蜂
    2020-05-24
    我在做一个考试程序,弹出页面后开始考试,可是点击左上角那个返回就退出考场了。怎么办。用 redirectTo 弹出的页面没有返回按钮,但是成了直接退出的按钮。
    
    2020-05-24
    有用
    回复 5
    • 菜菜
      菜菜
      2020-06-05
      请问有什么处理方法吗
      2020-06-05
      1
      回复
    • 小蜜蜂
      小蜜蜂
      2020-06-05回复菜菜
      自定义组件就可以。
      2020-06-05
      1
      回复
    • 菜菜
      菜菜
      2020-06-05
      嗯嗯,应该控制不到 左滑返回吧,我是想让用户确认后再返回,没有确认不返回
      2020-06-05
      1
      回复
    • 小蜜蜂
      小蜜蜂
      2020-06-05回复菜菜
      在 app.json 里有个 "navigationStyle": "custom"
      2020-06-05
      回复
    • 菜菜
      菜菜
      2020-06-05
      好的,Thanks♪(・ω・)ノ
      2020-06-05
      回复
  • Allen
    Allen
    2020-05-11

    更倾向删除页面栈,但也没找到方法

    2020-05-11
    有用
    回复
  • 搁浅、过去
    搁浅、过去
    2020-04-09

    我也想问这个问题

    2020-04-09
    有用
    回复

正在加载...

登录 后发表内容