怕酸还吃柠檬
怕酸还吃柠檬
  • 发布:2018-09-06 17:18
  • 更新:2020-11-06 16:17
  • 阅读:12790

uniapp 安卓中如何阻止物理返回键导致的页面回退?

分类:uni-app

Android中点击物理返回键后我想截获默认操作仍然停留在该页面,我使用plus.key 监听后回调中返回false等都无法实现,是否有其他方法实现?

2018-09-06 17:18 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

如果是首页退出提示,有些黑科技http://ask.dcloud.net.cn/article/34959
二级页目前未提供。
uni-app的页面栈和路由是统一管理的,自动预载优化性能,自定义会导致页面栈混乱。
你的需求不是不合理,只是我们暂时未想到如何平衡这些,以及如何平衡微信小程序,那边是不开放自定义的

  • 怕酸还吃柠檬 (作者)

    个人认为,打包后的本地应用程序行为表现在理论上和实践中应比微信小程序丰富得多,如果以微信小程序的可实现度来做一个标准的话,将在很大程度上限制另一端的发展,如果这样与H5+ + MUI相比较其优势就不再明显了。

    个人建议:某些在本地程序中迫切需要但在小程序端无法实现的功能可以根据平台差异实现或作出取舍(个人能力有限,阐述若不合理见谅)。


    2018-09-07 09:30

  • d***@foxmail.com

    我觉得APP更重要一点


    2019-06-12 10:38

  • raise

    nvue直接启动业务逻辑复杂的页面是会白屏甚至闪退的。但是如果做个简单的页面当启动页就正常。但是之后用户在首页一返回就到这个启动页了。首页需要这个阻止返回键的功能


    2019-10-14 23:06

sei摸挑

sei摸挑

现在有个需求是点击安卓返回弹出确认框来询问用户是否确定要返回,这样是不是就没办法实现了

  • 幻想刺客hp

    这个问题怎么样 解决了吗 我这边页出现这样的问题


    2018-12-17 09:29

  • sei摸挑

    @hpmichael@163.com:解决了,通过onBackPress事件,里面写了return true就能阻止点击返回的关闭页面了


    2018-12-20 08:33

  • 3***@qq.com

    回复 sei摸挑: 大佬大佬


    2019-08-08 09:11

  • xatao

    大佬,怎么给弹窗提示用户确定了 才能返回上一页面啊 return true应该怎么加


    2020-07-31 10:36

  • sei摸挑

    回复 xatao:

    参考一下,很早之前写的

    onBackPress() {

    if (!this.isBack) {

    this.headLeftClick();

    return true;

    }

    },


    headLeftClick() { //返回

    this.$util.jlyConfirm({

    title: "返回",

    content: "尚未提交数据采集、保温箱等信息,是否确认返回",

    confirm: () => {

    setTimeout(()=>{

    this.isBack = true;

    uni.navigateBack();

    },500)

    }

    })

    },


    2020-08-11 15:47

  • 谭小谭

    回复 sei摸挑: 大佬,谢谢


    2021-02-08 10:42

raise

raise

答案如下:

plus.key.addEventListener('backbutton',()=>{
if(back_k){
plus.runtime.quit();
}else{
uni.showToast({
title:"再按一次退出应用",
icon:'none'
});
}
back_k ++
setTimeout(()=>{
back_k --
},3000)
}, false);

  • 安远

    这个是可以用在uni-app里面的么? 那是放到什么地方可以使用的?


    2019-10-28 21:29

  • raise

    回复 安远: 可以在uniapp的生命周期使用


    2019-10-28 21:35

  • 安远

    回复 raise: 加了之后有报错,是不是我少了什么

    15:25:08.491 [JS Framework] Failed to execute the callback function:

    15:25:08.512 ReferenceError: Can't find variable: back_k

    15:25:08.533 reportJSException >>>> exception function:WEEX_CALL_JAVASCRIPT, exception:JavaScript execute error!ReferenceError: Can't find variable: back_k

    15:25:08.554 getTemplateInfo== template md5 null ,httpHeader:{}


    2019-11-01 15:28

  • raise

    回复 安远: 重启


    2019-11-01 17:51

  • 7***@qq.com

    回复 raise: 返回键如何指定页面吗


    2019-12-09 18:24

Lucky_

Lucky_

这个只能拦截调物理按键的返回,IOS端左滑的返回拦截不了的

  • DCloud_heavensoft

    pages.json的style中app-plus里边配置popGesture:'none'


    2020-11-07 17:44

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