l***@huilan-online.com
l***@huilan-online.com
  • 发布:2016-06-15 16:50
  • 更新:2016-06-15 16:50
  • 阅读:1038

【报Bug】

分类:HTML5+

详细问题描述
[内容]
情况一,当应用打开窗体后,切换到后台或其它应用后,大约几分钟再切回来(如果应用没有重启),回到当时打开窗体的状态时,会在plusready代码中出现无法获取当前窗体的情况。
plus.webview.currentWebview(); plus.navigator.getStatusBarStyle(); 都无法取到值。通过测试确认已经触发了plusready 事件
2.情况二,在使用QQ微信登录后注销再登录之后也会出现情况一的问题。 openWindow还是能正常执行,但是每个页面的plusready 中的plus.webview.currentWebview(); plus.navigator.getStatusBarStyle(); 都取不到值。把应用切到后台再切回来,这些问题又正常了。

重现步骤
[步骤]在个人中心右上角设置图标,进入系统设置页面,里面有登录 按钮,点击登录选择QQ登录,然后回来退出登录再登录使用微信登录 。再一步一步回到个人中心,然后再打开设置页面,如果没有出现问题,则重复步骤再尝试。 这是最容易复现的方式。 情况一的问题,偶尔才会出现。很难重现。
[结果]
当前页面的plusready 事件触发后的
plus.webview.currentWebview(); plus.navigator.getStatusBarStyle(); 方法都无法正确取到值。
[期望]

运行环境
[系统版本]
[浏览器版本]
[IDE版本]
[mui版本]

附件
[代码片段]
1.edupay.js 封装弹出窗体和处理样式的代码
在个人中心页面通过
var tmplWV=edupay.createWebView('../home/login.html','home-login',{},{},true);
tmplWV.addEventListener('close',function(){
showBtn();
},false);

            tmplWV.show('pop-in',350,function(){  

            });   

创建窗体并打开
2.被打开窗体引用了edupay.js 此js默认监听了plus.ready事件
document.addEventListener('plusready',function(){
mui.alert(window.location.href+":::::::::::plusready执行");
owner.updateLayerStyle();
},false);
然后执行
owner.updateLayerStyle=function(){
if(mui.os.android)
return;

    //解决应用待机恢复后有时候plusready中plus+操作无效的情况  
    var currentWV=plus.webview.currentWebview();   
    //特殊原因未取到当前窗体对象时通过url参数处理  
    if(currentWV==null){     
        mui.alert(window.location.href+"::::::updateLayerStyle2:::currentWV==null");  
        var openerstatusbarstyle=owner.getQueryString("openerstatusbarstyle");  
        if(openerstatusbarstyle!=null && openerstatusbarstyle!=""){  
            mui.alert(window.location.href+"::::::updateLayerStyle2:::父状态栏::"+openerstatusbarstyle);  
            var statusbarstyle=owner.getQueryString("statusbarstyle");  
            mui.alert(window.location.href+"::::::updateLayerStyle2:::子状态栏::"+statusbarstyle);  

            if(statusbarstyle!=null && statusbarstyle!="" && statusbarstyle!=openerstatusbarstyle){  
                //更新状态栏  
                plus.navigator.setStatusBarStyle(statusbarstyle);  
                //调整样式  
                _updateLayerStyle();  
            }  
        }else{  
            //子窗体不用调整自身样式  
            console.log("子窗体沉浸模式下不需要调整自身样式");  
        }  
    }else{   
        if(currentWV.parent()){   
            console.log("子窗体沉浸模式下不需要调整自身样式");  
            return;  
        }else{  
            if(currentWV.statusbarstyle && currentWV.statusbarstyle!=currentWV.openerstatusbarstyle){   
                plus.navigator.setStatusBarStyle(currentWV.statusbarstyle);  
            }  
            //调整样式  
            _updateLayerStyle();  
        }  
    }   
}  

[安装包]

联系方式
[QQ]42500837
[电话]15001762770

2016-06-15 16:50 负责人:无 分享
已邀请:

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