1***@qq.com
1***@qq.com
  • 发布:2020-01-06 18:40
  • 更新:2020-01-06 18:40
  • 阅读:1061

webview打开外链之后,通过重写的mui.back方法返回,有时候会返回到外部链接的登录界面!

分类:HBuilderX

最近做的一个功能,在我们自己的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));和正常返回获取的信息一样。

请问下大家,这是啥情况??

2020-01-06 18:40 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复