問題描述:Hbuilder打包的app如果點擊手機回傳鍵,app會直接退出,回傳不了上一頁。
寫在公共js檔案中,每個頁面均引入該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按手機回傳鍵直接退出APP
//plus.runtime.quit();
}
})
});
});
上面的一段代碼即可實作按手機回傳鍵時回傳上一頁,當回傳到首頁,再按手機回傳鍵即可退出APP,下面的代碼可以不要
點擊手機回傳鍵兩次提示退出程式,代碼如下:
注: 在hbuilder中新建移動App時,選擇模板-mui專案,在頁面中引入mui.js以及mui.min.js,點擊兩次退出程式效果才會實作
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);
});
按手機回傳鍵回傳上一頁 + 點擊手機回傳鍵兩次提示退出程式效果,完整js代碼:
注:此段代碼當在首頁,按手機回傳鍵時無效果,不會退出APP,要點擊兩次才行
<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);
});
}
})
});
});
</script>
轉載自:https://www.cnblogs.com/zyl-930826/p/9212779.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/42399.html
標籤:移動開發其他問題
