最近做的一个功能,在我们自己的app内部通过plus.webview.create打开了一个外部链接,外部链接是一个h5页面,有自己的处理逻辑。
打开外部链接的代码:
// 当前页面 voice.html
var self = null;
// 需要创建的外部页面
var baiduWV = null;
var url = path + "voiceofcustomers/voiceOfCutomersController/getParams.do";
var voice_url = "http://218.205.252.27:18080/SopPortal/uv.do"
// 弹出系统等待对话框
// var w = plus.nativeUI.showWaiting("加载中...");
ajaxPost(url, "", function(data) {
// 参数获取成功,则直接打开客户之声链接(外部链接)
if (data.stutas == "success") {
var u = voice_url + "?p=06618C56A7A8C0063921E93938A67A34&cid=" + data.channelNo + "&t=" + data.currenttime;
self = plus.webview.currentWebview();
baiduWV = plus.webview.create(u, "voice", {
top: "44px",
bottom: 0,
createNew : false
});
self.append(baiduWV);
} else {
mui.alert('【】参数获取出错', ' ', function() {
closeWindow();
});
}
})
重写的返回方法代码如下:
/**
- 重写mui.back()方法
- http://dev.dcloud.net.cn/mui/window/#closewindow
*/
var old_back = mui.back;
mui.back = function(){
backEvent();
}
// 返回(关闭)按钮事件
function backEvent(){
baiduWV.canBack(function(event) {
var canBack = event.canBack;
// var list = plus.webview.getDisplayWebview();
console.log(JSON.stringify(baiduWV));
if(canBack) { // 如果有子页面,则返回
// mui.toast("返回");
baiduWV.back();
} else { // 否则关闭当前页面
// mui.toast("关闭");
self.close();
}
});
}
外部链接打开之后,页面底部有三个选项卡,点击第二三个选项卡,然后点击返回键(按钮或手机自带的按键)正常情况是会返回到我们自己的app里来,但是偶尔会出现:返回到外部链接自己的登录页面,控制台没有看出明显的问题,当出现这种问题的时候,控制台输出的console.log(JSON.stringify(baiduWV));和正常返回获取的信息一样。
请问下大家,这是啥情况??
0 个回复