zoukankan      html  css  js  c++  java
  • vue-cli打包app手机返回键支持

    问题描述:Hbuilder打包的app如果点击手机返回键,app会直接退出,返回不了上一页。

    处理子页面点击返回键直接退出,无法返回,代码如下:

    //这个不是写在首页,写在子页面(子页面才能返回,写在首页点击返回就是退出)
    //不用引入mui.js,都是h5方法
    document.addEventListener('plusready', function() {
    var webview = plus.webview.currentWebview();
    plus.key.addEventListener('backbutton', function() {
    webview.canBack(function(e) {
    if(e.canBack) {
    webview.back();
    } else {
    webview.close(); //hide,quit
    //plus.runtime.quit();
    }
    })
    });
    });

    首页点击两次退出程序,代码如下:

    //这个写在首页,判断连击两次退出。
    //需要引入mui.js版本,我当时测试的时候引入了,如果不想引入把带mui的都删了就可以(或者看下面那个)
    mui.plusReady(function() {
    //首页返回键处理
    //处理逻辑:1秒内,连续两次按返回键,则退出应用;
    var first = null;
    plus.key.addEventListener('backbutton', function() {
    //首次按键,提示‘再按一次退出应用’
    if (!first) {
    first = new Date().getTime();
    mui.toast('再按一次退出应用');
    setTimeout(function() {
    first = null;
    }, 1000);
    } else {
    if (new Date().getTime() - first < 1000) {
    plus.runtime.quit();
    }
    }
    }, false);
    });

    //不需要mui.js版本
    document.addEventListener('plusready', function(a) {
    var first = null;
    plus.key.addEventListener('backbutton', function() {
    //首次按键,提示‘再按一次退出应用’
    if (!first) {
    first = new Date().getTime();
    console.log('再按一次退出应用');//用自定义toast提示最好
    setTimeout(function() {
    first = null;
    }, 1000);
    } else {
    if (new Date().getTime() - first < 1000) {
    plus.runtime.quit();
    }
    }
    }, false);
    });

    完整js代码:

    //完整版就是,所有页面都引入这一段代码,而上面子页面和首页需要分别引入对应代码

    //需要mui.js版本
    <script>
    document.addEventListener('plusready', function() {
    var webview = plus.webview.currentWebview();
    plus.key.addEventListener('backbutton', function() {
    webview.canBack(function(e) {
    if(e.canBack) {
    webview.back();
    } else {
    //webview.close(); //hide,quit
    //plus.runtime.quit();
    mui.plusReady(function() {
    //首页返回键处理
    //处理逻辑:1秒内,连续两次按返回键,则退出应用;
    var first = null;
    plus.key.addEventListener('backbutton', function() {
    //首次按键,提示‘再按一次退出应用’
    if (!first) {
    first = new Date().getTime();
    mui.toast('再按一次退出应用');
    setTimeout(function() {
    first = null;
    }, 1000);
    } else {
    if (new Date().getTime() - first < 1500) {
    plus.runtime.quit();
    }
    }
    }, false);
    });
    }
    })
    });
    });

    //不需要mui.js版本
    document.addEventListener('plusready', function() {
    var webview = plus.webview.currentWebview();
    plus.key.addEventListener('backbutton', function() {
    webview.canBack(function(e) {
    if(e.canBack) {
    webview.back();
    } else {
    //webview.close(); //hide,quit
    //plus.runtime.quit();
    //首页返回键处理
    //处理逻辑:1秒内,连续两次按返回键,则退出应用;
    var first = null;
    plus.key.addEventListener('backbutton', function() {
    //首次按键,提示‘再按一次退出应用’
    if (!first) {
    first = new Date().getTime();
    console.log('再按一次退出应用');
    setTimeout(function() {
    first = null;
    }, 1000);
    } else {
    if (new Date().getTime() - first < 1500) {
    plus.runtime.quit();
    }
    }
    }, false);
    }
    })
    });
    });
    </script>

  • 相关阅读:
    Python与Hack之window下运行带参数的Python脚本,实现一个简单的端口扫描器
    Python与Hack之守护进程
    Python与Hack之Zip文件口令破解
    Mysql远程连接,并解决wordp主题添加问题
    基于PHP以及Mysql,使用WordPress搭建站点
    AngularJS学习之输入验证
    微信公众平台搭建
    innobackupex: fatal error: no ‘innodb_buffer_pool_filename’解决方法
    Python多线程
    tpcc
  • 原文地址:https://www.cnblogs.com/wangjianping123/p/10101932.html
Copyright © 2011-2022 走看看