这是那个方法,给页面添加了一个监听事件当close时,设置wc为null,
那么每次打开侧滑页面时都要新建一个wc。
var ws=null,wc=null;
// 扩展API加载完毕,现在可以正常调用扩展API
function plusReady(){
ws=plus.webview.currentWebview();
// 用户点击后
ws.addEventListener("maskClick",function(){
wc.close("auto");
},false);
}
// 判断扩展API是否准备,否则监听"plusready"事件
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}
function showSide(){
// 防止快速点击可能导致多次创建
if(wc){
return;
}
// 开启遮罩
ws.setStyle({mask:"rgba(0,0,0,0.5)"});
// 创建侧滑页面
wc=plus.webview.create("webview_mask_side.html","side",{left:"30%",width:"70%",popGesture:"none"});
// 侧滑页面关闭后关闭遮罩
wc.addEventListener('close',function(){
ws.setStyle({mask:"none"});
wc=null;
},false);
// 侧滑页面加载后显示(避免白屏)
wc.addEventListener("loaded",function(){
wc.show("slide-in-right",200);
},false);
}
如果我改成这样,第一下可以打开,第二下就无法打开侧滑页面了
function showSide(){
// 防止快速点击可能导致多次创建
if(!wc){
wc=plus.webview.create("webview_mask_side.html","side", {left:"30%",width:"70%",popGesture:"none"});
}
// 开启遮罩
ws.setStyle({mask:"rgba(0,0,0,0.5)"});
// 侧滑页面关闭后关闭遮罩
wc.addEventListener('close',function(){
ws.setStyle({mask:"none"});
},false);
// 侧滑页面加载后显示(避免白屏)
wc.addEventListener("loaded",function(){
wc.show("slide-in-right",200);
},false);
}
萝卜特洛夫司机 (作者)
就是因为mui的侧滑菜单问题很多,我才选择H5+的方法。
2015-10-10 20:22