taogou
taogou
  • 发布:2016-01-26 11:22
  • 更新:2017-03-24 10:24
  • 阅读:1940

webview.show 与子页面mui.js冲突

分类:HTML5+

ws=plus.webview.currentWebview();
wo=ws.opener();
wp=plus.webview.create('webview_new.html','webview_new.html',{scrollIndicator:'none',scalable:false,popGesture:'none'},{preate:true});

wp.show(type);
第一次正常,但是如果我在webview_new.html调用了mui.js方法后第二次show就打不开了

2016-01-26 11:22 负责人:无 分享
已邀请:
maq

maq

一个 webview 可以被多次 show(),跟里面有没有引用 mui.js 没有关系,这已经被反复验证了。

检查一下你的【第二次show】是怎么做的,也许是用法的问题。

taogou

taogou (作者)

但是我把子页面的mui.js 去掉 就是正常的
调用方法是一样的 就是ws.show

taogou

taogou (作者)

我就是拿官方的例子做的
在 webview_new页面添加
<script type="text/javascript" src="../js/mui.min.js" ></script>
删除这个css <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8"/>
就不对了

maq

maq

原帖中说是 wp.show(),回复中又说是 ws.show(),敲错了吧?

taogou

taogou (作者)

是mui.js 以下有问题 去掉就好了

/**

  • mui back 5+
  • @param {type} $
  • @param {type} window
  • @returns {undefined}
    */
taogou

taogou (作者)

对 是敲错了

实际上只是改了webview_new 填了mui.js 删除了 css

taogou

taogou (作者)

其实是这里面的原因
wobj.canBack(function(e) {
//by chb 暂时注释,在碰到类似popover之类的锚点的时候,需多次点击才能返回;
if (e.canBack) { //webview history back
window.history.back();
} else { //webview close or hide
//fixed by fxy 此处不应该用opener判断,因为用户有可能自己close掉当前窗口的opener。这样的话。opener就为空了,导致不能执行close
if (wobj.id === plus.runtime.appid) { //首页
//首页不存在opener的情况下,后退实际上应该是退出应用;
//这个交给项目具体实现,框架暂不处理;
//plus.runtime.quit();
} else { //其他页面,
if (wobj.preload) {
wobj.hide("auto");
} else {
//关闭页面时,需要将其打开的所有子页面全部关闭;
$.closeAll(wobj);
}
}
}
});
我没有预加载 所以做了 $.closeAll(wobj);所以第2次打不开了

8***@qq.com

8***@qq.com

确实是这的问题,你最后这么解决的?我也遇到了

taogou

taogou (作者)

是mui.js中的 5+back事件冲突

8***@qq.com

8***@qq.com

那你你是最后解决了吗? 是吧close改成hide了吗?

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