hbuilder的h5+提供开发webapp的诸多便利,很多手机自带back虚拟按键,如果不修改其默认事件,点一下app就退出了,所以我这里提供一种修改这个按键默认事件事件的代码。
首先你要用hbuilder创建一个移动项目,选择空模板,然后将你项目文件全部粘贴进去,首先在你的首页index.html添加如下代码,
<script>
document.addEventListener("plusready", function() {
// 注册返回按键事件
plus.key.addEventListener('backbutton', function() {
// 事件处理
plus.nativeUI.confirm("退出程序?", function(event) {
if (event.index) {
plus.runtime.quit();
}
}, null, ["取消", "确定"]);
}, false);
});
</script>
接着在其他的子页面添加如下代码:
<script>
document.addEventListener("plusready", function() {
// 注册返回按键事件
plus.key.addEventListener('backbutton', function() {
// 事件处理
window.history.back();
}, false);
});
</script>
这样的话在首页就是退出功能,在子页面就是返回功能。
解决方法2:
在首页里面写入
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
}
})
});
});
参照: http://ask.dcloud.net.cn/question/15978
解决方法3:
mui.init({
keyEventBind: {
backbutton: true //关闭back按键监听
}
});
// //首页返回键处理
// //处理逻辑:1秒内,连续两次按返回键,则退出应用;
var first = null;
mui.back = function() {
//首次按键,提示‘再按一次退出应用’
if (!first) {
first = new Date().getTime();//记录第一次按下回退键的时间
mui.toast('再按一次退出应用');//给出提示
history.go(-1)//回退到上一页面
setTimeout(function() {//1s中后清除
first = null;
}, 1000);
} else {
if (new Date().getTime() - first < 1000) {//如果两次按下的时间小于1s,
plus.runtime.quit();//那么就退出app
} } };
网友评论