按手机返回键APP直接退出问题
最近vue做个项目,通过HBuilder打包之后发现按手机的返回键应用直接退出了,而不是返回上一页,为此,特意解决了这一问题,具体代码如下:document.addEventListener('plusready', function() {var webview = plus.webview.currentWebview();plus.key.addEventListener('ba...
·
最近vue做个项目,通过HBuilder打包之后发现按手机的返回键应用直接退出了,而不是返回上一页,为此,特意解决了这一问题,具体代码如下:
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(); //关闭应用
}
})
});
});
将上述代码写在公共js中,在main.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 < 1500) {
plus.runtime.quit();
}
}
}, false);
});
完整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();
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);
});
}
})
});
});
参考链接:
点击打开链接更多推荐
已为社区贡献6条内容
所有评论(0)