plusReady的 代码都在这了,“再按一次退出应用”有提示,但按一下程序就先退出了,不知道是哪冲突引起了,求解决,感激不尽。
// H5 plus事件处理
function plusReady() {
ws = plus.webview.currentWebview();
wo = ws.opener();
ws.show("slide-in-right", 300);
window.setTimeout(function() {
var s = ws.getStyle();
s.left = "0%";
ws.setStyle(s);
}, 100);
//关闭当前页外的所有页面
var all = plus.webview.all();
var current = plus.webview.currentWebview().id;
for(var i=0,len=all.length;i<len;i++){
if(all[i].id!==current){
all[i].close();
}
}
//首页返回键处理(有效果,但程序先退出了)
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);
});
}
if(window.plus) {
plusReady();
} else {
document.addEventListener('plusready', plusReady, false);
}
7 个回复
最佳回复
wenju - https://www.mescroll.com -- 精致的下拉刷新和上拉加载组件
wenju - https://www.mescroll.com -- 精致的下拉刷新和上拉加载组件
原因就是你没有重写mui.back的方法 而是监听了事件..
聚焦 (作者)
哦,那方法该写在什么位置呢。
2016-08-23 10:46
wenju
下面 那个地方 写在 plusReady() {} 的任意位置
2016-08-23 10:47
聚焦 (作者)
回复 wenju:嗯,弹窗效果是出来了,但还是一样,程序先退出了。
2016-08-23 10:49
wenju
回复 聚焦:肯定有其他地方做了返回键的监听 .. 你检查一下 把它删了
2016-08-23 10:50
聚焦 (作者)
首页没有其他监听啊。其他界面的影响么?我在首页把其他界面全部关闭了。
2016-08-23 11:00
__raymond - https://segmentfault.com/u/_raymond
后来解决了吗
同问!
聚焦 (作者)
解决了,感谢。
2017-10-16 12:01
benlampson
我的就算贴了最佳答都没用啊
wenju
要放到plusReady 里面的吧
2017-08-17 14:09
O得六
用了官方的例子和其他答案都没有效果,还是按一次提示之后立马就退出了。
实在摸不着头脑了,下边是一个折中版本,按一次提示,两次退出。唯一的问题就是:退出后还会在显示一次“再按一次...”,有已经完美解决的大神麻烦告知一下,不胜感激!
mui.back = function() {
var data = 0;
mui.back = function() {
var first = null;
if (!first) {//首次按键,提示‘再按一次退出应用’
first = 1;
mui.toast('再按一次退出应用');
//console.log(data);
data += 1;
setTimeout(function() {
first = null;
data = 0;
}, 1000);
}
if(data == 3) {
// console.log(data);
plus.runtime.quit();
}
};
};
回梦無痕
你这个有误,你直接复制最上面的最佳回复那个代码
2017-11-14 08:54
1***@163.com
1楼的代码没有问题,直接用就行了
nancier
我以前遇到过这个问题,但是我是用了父页面和子页面引起的,父页面里加载子页面,然后在父页面里写这个双击退出功能,每次点一下就退出了,因为点击返回的时候父页面会响应一次,子页面也会响应,所有程序就认为点击了两次,只要在子页面里禁用返回按钮就可以了
希望能帮到你