滴滴滴cloud
滴滴滴cloud
  • 发布:2019-01-10 20:46
  • 更新:2019-01-12 11:05
  • 阅读:174

wap2app 跳转到欢迎页,在欢迎页面做版本升级提示,点击确认升级无法获取回调event对象,event对象为空

分类:wap2app

plus.nativeUI.confirm(rsp.note, function(event) 回调无法获取,是不是因为关闭了当前的webview?

client_index.html文件
<script type="text/javascript">
if (window.plus) {
plusReady()
} else {
document.addEventListener('plusready', plusReady, false)
}

        function plusReady() { //这里是每次进入应用都会显示引导页,开发中要如何显示引导页视具体的情况而定。  
            plus.storage.setItem("launchFlag",1111)   

            console.log(1211212,JSON.stringify(plus.storage))  
            if(plus.storage.getItem("launchFlag") != true){  
                var style = {  
                    "popGesture":"none"  
                }   
                var guide = plus.webview.create('guide.html', "guide", style);  
                guide.show();  
            }  

        }  
    </script>  

guide.html

<script type="text/javascript">
mui.init();
mui.plusReady(function() {
/**

  • 获取系统状态栏高度
  • http://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.getStatusbarHeight
    */
    var sh = plus.navigator.getStatusbarHeight();
    /**
  • 获取设备屏幕高度分辨率以及宽度分辨率
  • http://www.html5plus.org/doc/zh_cn/device.html#plus.screen.resolutionHeight
  • http://www.html5plus.org/doc/zh_cn/device.html#plus.screen.resolutionWidth
    */
    var h = plus.screen.resolutionHeight;
    var w = plus.screen.resolutionWidth;
    /**
  • 设置图片高度,这里图片并不规范;
  • 实际开发中,建议大家制作iphone6plus规格的图片;
    */
    var imgs = document.querySelectorAll(".guide-img");
    for (var i = 0, len = imgs.length; i < len; i++) {
    imgs[i].style.height = (h - sh) + "px";
    imgs[i].style.width = w + "px";
    }
    /**
  • 手动关闭启动页
  • http://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.closeSplashscreen
    */
    plus.navigator.closeSplashscreen();

            /************欢迎页自动跳过********** */  
            setTimeout(function(){  
                //关闭欢迎页  
                var ws = plus.webview.currentWebview();  
                plus.webview.close(ws, 'fade-out', 1000);  
                /************升级检测代码开始********** */  
                var ua = navigator.userAgent;  
                //Html5Plus环境,但不是流应用环境  
                // console.log(ua)  
                // if(ua.indexOf('Html5Plus') > -1 && ua.indexOf('StreamApp') == -1) {  
                if (ua.indexOf('Html5Plus') > -1 && !ua.indexOf('StreamApp') > -1) {  
                    var server = "http://www.dcloud.io/check/update"; //检查更新地址  
                    var req = { //升级检测数据   
                        "appid": plus.runtime.appid,  
                        "version": plus.runtime.version,  
                        "imei": plus.device.imei  
                    };  
    
                    //注释部分是wap2app封装的post请求。示例使用get请求  
                    mui.get(server, req, function(rsp) {  
                        var rsp = {};  
                        rsp.status = 1;  
                        rsp.title = '新版本提示';  
                        rsp.note = '1.APP重构\n2.UI美化\n3.增加企业专享标\n4.重要BUG修复必须更新';  
                        rsp.url = 'https://a.app.qq.com/o/simple.jsp?pkgname=com.sfjf51.www';  
                        rsp.is_must = 0;  
    
                        if (rsp && rsp.status) {  
                            //需要更新,提示用户  
                            if (rsp.is_must == 1) {  
                                plus.nativeUI.confirm(rsp.note, function(event) {  
                                    if (0 == event.index) { //用户点击了“立即更新”按钮  
                                        plus.runtime.openURL(rsp.url);  
                                    }  
                                }, rsp.title, ["立即更新"]);  
                            } else {  
    
                                plus.nativeUI.confirm(rsp.note, (event)=> {  
                                    console.log('打开:',JSON.stringify(event))   
                                    if (0 == event.index) { //用户点击了“立即更新”按钮  
                                        plus.runtime.openURL(rsp.url);  
                                    }  
                                }, rsp.title, ["立即更新", "取消"]);  
                            }  
    
                        }  
                    });  
                }  
                /************升级检测代码结束********** */  
    
            },8000)  
    
            /************欢迎页自动跳过********** */   
    
            document.getElementById("start").addEventListener("tap", function() {  
                /**  
                 * 向本地存储中设置launchFlag的值,即启动标识;  
                 * http://www.html5plus.org/doc/zh_cn/storage.html#plus.storage.setItem  
                 */  
                plus.storage.setItem("launchFlag", "true");  
                //                  mui.openWindow({  
                //                      url: "main.html",  
                //                      id: "main",  
                //                      extras: {  
                //                          mark: "gudie" //同样,这里也只是个标识,实际开发中并不用;  
                //                      }  
                //                  });  
                // mui.back();  
    
                var ws = plus.webview.currentWebview();  
                plus.webview.close(ws, 'fade-out', 1000);  
    
                //454665  
    
            });  
        });  
        /**  
         * 重写mui.back(),什么都不执行,反之用户返回到入口页;  
         */  
        mui.back = function() {};  
    </script>  
2019-01-10 20:46 分享
已邀请:
夫子

夫子

你这个升级检测配置错地方了!可以找我帮你看看!

夫子

夫子

你这个升级检测配置错地方了!可以找我帮你看看!

  • 滴滴滴cloud (作者)

    我是从app.js中提到这里的,我的目的是想等欢迎页面完成后进行升级检测操作,放到app.js不知道如何控制

    2019-01-14 14:55

  • 夫子

    写个延迟就可以了!

    2019-01-17 04:29

要回复问题请先登录注册