首页 > 移动平台 > 详细

【Cordova】开发app遇到的坑之 按两次返回键退出程序

时间:2020-03-20 14:44:00      阅读:91      评论:0      收藏:0      [点我收藏+]

前言:

  之前做移动端开发app,前端无论用的是framework7还是vux或者是自己写,都会碰到了一个问题,就是点安卓手机的物理返回键返回的不是我程序的上一级,而是操作的上一级界面,举个例子:

  我从A界面跳转到B界面,再从B界面跳转到下一级C界面,然后我点界面上的返回键会正常返回跳转到B界面,此时我要是点物理返回键就会又跳转到C界面,so,这是个坑,而且至今没找到什么好的解决办法,监听不到安卓物理键的返回,找了个折中的办法,用Cordova卡住物理返回键,做成点击一次提示继续点击退出程序,点击两次直接退出程序的样式,坑还是没有爬完,大神们有什么好的建议欢迎留言,跪谢~

 

  直接上代码:

<script src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
    // Wait for device API libraries to load    //
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }
    document.addEventListener("deviceready", onDeviceReady, false);
 
    function onDeviceReady() {
        //navigator.splashscreen.hide();
        document.addEventListener("backbutton", onBackKeyDown, false);
    }
    function onBackKeyDown() {
        window.plugins.toast.showLongCenter(再按一次退出, function(a){console.log(toast success:  + a)}, function(b){alert(toast error:  + b)})
        document.removeEventListener("backbutton", onBackKeyDown, false); // 注销返回键
        document.addEventListener("backbutton", exitApp, false);//绑定退出事件
        // 3秒后重新注册
        var intervalID = window.setInterval(function() {
            window.clearInterval(intervalID);
            document.removeEventListener("backbutton", exitApp, false); // 注销返回键
            document.addEventListener("backbutton", onBackKeyDown, false); // 返回键
        }, 3000);
    }
    function exitApp(){
        navigator.app.exitApp();
    }
</script>

 

注意:

  需要在cordova上安装TOAST插件:

cordova plugin add cordova-plugin-x-toast

 

【Cordova】开发app遇到的坑之 按两次返回键退出程序

原文:https://www.cnblogs.com/shijianblog/p/12531531.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!