• dcloud资源升级方式更新app


    var wgtVer = null;
    plus.runtime.getProperty(plus.runtime.appid, function(inf) {
                            wgtVer = inf.version;
                            console.log("当前应用版本:" + wgtVer);
    
                            // 检测更新
                            var checkUrl = getAbsUrl("update/check");
    
                            function checkUpdate() {
                                plus.nativeUI.showWaiting("检测更新...");
                                var xhr = new XMLHttpRequest();
                                xhr.onreadystatechange = function() {
                                    switch(xhr.readyState) {
                                        case 4:
                                            plus.nativeUI.closeWaiting();
                                            if(xhr.status == 200) {
                                                console.log("检测更新成功:" + xhr.responseText);
                                                var newVer = xhr.responseText;
                                                if(wgtVer && newVer && (wgtVer != newVer)) {
                                                    // 下载升级包
                                                    newVer = newVer.replace('.', '');
                                                    var wgtUrl = getAbsUrl("qr/" + newVer + ".wgt");
    
                                                    plus.nativeUI.showWaiting("下载wgt文件...");
                                                    plus.downloader.createDownload(wgtUrl, {
                                                        filename: "_doc/update/"
                                                    }, function(d, status) {
                                                        if(status == 200) {
                                                            console.log("下载wgt成功:" + d.filename);
                                                            // 安装wgt包
                                                            var path = d.filename;
                                                            plus.nativeUI.showWaiting("安装wgt文件...");
                                                            plus.runtime.install(path, {}, function() {
                                                                plus.nativeUI.closeWaiting();
                                                                console.log("安装wgt文件成功!");
                                                                plus.nativeUI.alert("应用资源更新完成!", function() {
                                                                    plus.runtime.restart();
                                                                });
                                                            }, function(e) {
                                                                plus.nativeUI.closeWaiting();
                                                                console.log("安装wgt文件失败[" + e.code + "]:" + e.message);
                                                                plus.nativeUI.alert("安装wgt文件失败[" + e.code + "]:" + e.message);
                                                            });
                                                        }
                                                        plus.nativeUI.closeWaiting();
                                                    }).start();
                                                }
                                            } else {
                                                console.log("检测更新失败!");
                                            }
                                            break;
                                        default:
                                            break;
                                    }
                                }
                                xhr.open('POST', checkUrl);
                                xhr.send();
                            }
                            
                            checkUpdate();
                        });
     

    下面是整包更新的代码:

    mui.getJSON(getAbsUrl('update/check'), {
                            "appid": plus.runtime.appid,
                            "version": plus.runtime.version
                        }, function(data) {
                            if(data.status) {
                                plus.nativeUI.confirm(data.note, function(event) {
                                    if(0 == event.index) {
                                        plus.runtime.openURL(data.url);
                                    }
                                }, data.title, ["立即更新", "取  消"]);
                            }
                        });

     参考:http://ask.dcloud.net.cn/article/182

  • 相关阅读:
    状态模式
    策略模式Strategy(对象行为型)
    模板方法模式
    Java_观察者模式(Observable和Observer) -转
    Cordova自定义插件
    MongoVUE查询备忘
    C#关于HttpClient的统一配置(一)
    C#邮件收发
    WebApi统一输出接口
    移动开发兼容性问题及性能优化
  • 原文地址:https://www.cnblogs.com/slmk/p/6970347.html
Copyright © 2020-2023  润新知