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>

  • 相关阅读:
    阅读ARm芯片手册 阅读方法
    Linux驱动mmap内存映射
    Linux下inotify的基本使用及注意事项
    网络视频监控与人脸识别
    Linux pci驱动源码
    Verilog语法
    跟着我从零开始入门FPGA(一周入门XXOO系列)-1、Verilog语法
    周立功-我的25年嵌入式生涯
    Linux 进程学习
    [转]MFC下关于“建立空文档失败”问题的分析
  • 原文地址:https://www.cnblogs.com/wangjianping123/p/10101932.html
Copyright © 2011-2022 走看看