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>

  • 相关阅读:
    Java进阶 -- 文章汇总
    Java并发编程 -- 文章汇总
    大话设计模式读书笔记--文章汇总
    Java并发编程--6.Exchanger线程间交换数据
    Java并发编程--7.Java内存操作总结
    Java并发编程--5.信号量和障碍器
    Java并发编程--4.Executor框架
    Java并发编程--3.Lock
    Java并发编程--2.synchronized
    Java并发编程--1.Thread和Runnable
  • 原文地址:https://www.cnblogs.com/wangjianping123/p/10101932.html
Copyright © 2011-2022 走看看