详细问题描述
currentWebview不是一个全局的变量,而是每个webview局部的变量.
重现步骤
[步骤]
我在一个全局js文件里定时弹出plus.webview.currentWebview().id
访问a页,再从a访问到b页
[结果]
弹出的值为:a,b,a,b,a,b....
[期望]
b,b,b,b,b,b........
如果定义就是每个webview的局部变量,那有什么办法能够获取我当前显示的webview呢?
我对比了一些属性发现无法区别出来
isVisible()全是true
getStyle()都一样,无法区别,比如我所想的display:none和block之类的.
运行环境
ios
附件
function initGa(){
alert(plus.webview.currentWebview().id);
}
var gaInt=window.setInterval("initGa()",3000);
联系方式
QQ 1145567334
5***@qq.com (作者)
非常感谢你这么快回复我,这篇文档我已经看过了,我目前是在考虑openWindow,mui-action-back在不改动的前提下,通过全局方法增加我描述的需求(具体业务场景:流量统计) ,如果在不close的前提下,所有的webview都已经是加载完成的,页面切换都不会再重新执行我需要执行的js,所以目前我的思路是每个页定时刷新(10毫秒)去获取当前显示在手机上的webview,当然如果实在没办法从这条路走下去,我就只有考虑在openwindow,mui-action-back上增加监听事件来触发我需要执行的js了。
2016-12-20 20:11
赵梦欢
回复 5***@qq.com: 定时刷新这样不是很浪费资源么,新开的webview 可以监听show 和 close这两个事件来实现统计这个整个过程。
2016-12-20 21:56
5***@qq.com (作者)
回复 赵梦欢:谢谢,我再试试
2016-12-20 22:19
5***@qq.com (作者)
回复 赵梦欢:
我在index页面增加了如下代码
mui.plusReady(function() {
plus.webview.currentWebview().addEventListener('show', function(e){
alert('index opened');
}, false);
});
我在cart页面增加了如下代码
mui.plusReady(function() {
plus.webview.currentWebview().addEventListener('show', function(e){
alert('cart opened');
}, false);
});
但真机调试的结果为:
第一次create webview的时候才会弹xxx opened, 而在两个已创建的webview切换的时候,并没有弹.
求教.
2016-12-21 10:22