至于思路而言,很简单,就是监听返回键或者说重写mui.back事件,然后通过WebviewObject对象的canBack和canForward方法可以查询Webview窗口的状态,通过back和forward控制页面加载。
可以通过plus.key.addEventListener来注册监听返回按键backbutton事件:
plus.key.addEventListener("backbutton",function(){
alert( "BackButton Key pressed!" );
});
通过WebviewObject对象的canBack和canForward方法可以查询Webview窗口的状态,通过back和forward控制页面加载。
canBack: 查询Webview窗口是否可后退
canForward: 查询Webview窗口是否可前进
back: 后退到上次加载的页面
forward: 前进到上次加载的页面
clear清除原生窗口的内容,用于重置原生窗口加载的内容,清除其加载的历史记录等内容
var ws=null,nw=null,canback=null,canforward=null,i=0;
function plusReady(){
ws=plus.webview.currentWebview();
nw=plus.webview.create("http://weibo.com/dhnetwork");
ws.append(nw);
plus.key.addEventListener("backbutton",function(){
//查询Webview窗口是否可后退
nw.canBack( function(e){
canback=e.canBack;
console.log("canback:"+canback);
});
//查询Webview窗口是否可前进
nw.canForward( function(e){
canforward=e.canForward;
console.log("canforward:"+canforward);
});
//当进入以后的逻辑判断
if(canback){
nw.back();
}else{
if(canforward){
exit();
return;
}else{
i++;
if(i>1){
exit();
}
}
}
});
}
function exit(){
// 弹出提示信息对话框
plus.nativeUI.confirm( "您想要退出吗?", function(e){
if(e.index==0){
plus.runtime.quit();
}
}, "您想要退出吗?", ["Yes","No"] );
}
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}