xdhgjdsjdcgrdh
xdhgjdsjdcgrdh
  • 发布:2016-04-14 14:08
  • 更新:2017-08-28 21:26
  • 阅读:2400

plus.webview.all()循环关闭webview的问题

分类:HTML5+

项目有个需求要关闭除了入口和首页以外的所有webview,用plus.webview.all()后进行循环判断关闭。
但发现有某些页面没有被关闭,通过console.log(),plus.webview.all()是获取到这些webview的,

plus.webview.all().forEach(function(wv, index){  
    console.log("all:" + index + ":" + wv.id);//log1  

    if(index !== 0 && wv.id !== "home.html"){  
        console.log("close:" + index + ":" + wv.id);//log2  
        plus.webview.getWebviewById(wv.id).close("none");  
    }  
});

输出log如下:
all:0:HBuilder
all:1:A.html
close:1:A.html
all:2:B.html
close:2:B.html
all:3:C.html
close:3:C.html

其中 C.html 就没有被关闭,明明log2都有log出它。

B.html 是 A.html 通过plus.webview.create方法产生的高度比 A.html 低的 webview,
B.html show()出来之后 B.html 通过plus.webview.create方法产生高度为 C.html, C.html 高度为100px
之后C.html 没有调用show方法

2016-04-14 14:08 负责人:无 分享
已邀请:
xdhgjdsjdcgrdh

xdhgjdsjdcgrdh (作者)

找到原因了,是因为执行上面JS的webview比它之后的webview提前关闭了,它之后的webview就没被关闭。所以解决方法是执行上面JS的webview放到最后才关闭

HOVER翱翔

HOVER翱翔

确实是这个问题,android没问题,就是ios,我打log,捕捉异常,倒序close各种方法都测试了,不行,来看了下,确实是这个问题,现在android和ios都没有问题了!非常感谢!!!

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