hbuilder 开发app 自动升级

使用huilder 开发app  ,实现app升级功能

1、

            var wgtVer = null; //用于获取系统当前版本
            var currentversion = null; //用于获取系统最新版本
            var installpackegename = null; //用于存储安装包名称
            //检测手机版本
            (function($, doc) {
                $.plusReady(function() {//获取手机版本号
                    plus.runtime.getProperty(plus.runtime.appid, function(inf) {
                        wgtVer = inf.version + ""; //获取当前app的版本号
                        checkUpdate();

                    });

      });
      }(mui, document));


    function checkUpdate() {
              //获取服务器的最新版本,在后台使用一个表来记录版本信息、安装包名称 $.ajax({ url: localStorage.getItem('server') + 'report_sysMainTableQuery4lyga', type: 'post', data:{} //已删除 timeout: 50000, dataType: 'json', success: function(res) { if(!res['Returnvalue'] && res['Rowscount'] > 0) { currentversion = res['MyDataTable'][0]["最新版本"] + ""; installpackegename = res['MyDataTable'][0]["安装包名称"] + ""; var btn = ["是", "否"];
                    //直接判断老是不起作用,所以转换成为数值来判断了 currentversion = currentversion.replace(/./g, ''); wgtVer = wgtVer.replace(/./g, ''); if(currentversion > wgtVer) //比对版本号 { mui.confirm("检测到新版本,是否更新", "更新应用", btn, function(e) { if(e.index == 0) { //确定更新应用 var Url = localStorage.getItem('server1') + "APK/" + installpackegename; /*下载页,资源路径*/ var watiting = plus.nativeUI.showWaiting("开始"); plus.downloader.createDownload(Url, { filename: "_doc/update/" }, function(d, status) { if(status == 200) { installWgt(d.filename); // 安装wgt包 } else { console.log("下载wgt失败!"); plus.nativeUI.alert("下载wgt失败!"); } plus.nativeUI.closeWaiting(); }).start(); } else { return; } }) } } } }); }
installWgt方法:
                    function installWgt(path) {
                        plus.nativeUI.showWaiting("安装文件...");
                        plus.runtime.install(path, {}, function() {
                            plus.nativeUI.closeWaiting();
                            console.log("安装文件成功!");
                            plus.nativeUI.alert("应用资源更新完成!", function() {
                                plus.runtime.restart();
                                deleteysb(path);
                            });

                        }, function(e) {
                            plus.nativeUI.closeWaiting();
                            console.log("安装wgt文件失败[" + e.code + "]:" + e.message);
                            plus.nativeUI.alert("安装wgt文件失败[" + e.code + "]:" + e.message);
                            deleteysb(path);
                        });
                    }

                    //删除安装包
                    function deleteysb(filename) {
                        plus.io.resolveLocalFileSystemURL(filename, function(entry) {
                            entry.remove();
                            mui.toast("删除安装包成功");
                        })
                    }

2、下载,升级的代码基本都一样,下载升级前要确认要下载的地址能不能访问。 服务通过iis发布,需要在iis配置中  MIME类型  添加wgt/application/widget  和 整包升级的 apk/application/vnd.android.package-archive

3、使用hbuilder 制作移动资源升级包,安装的时候如果提示:安卓在线升级时,manifest.json无修改却报-1229错误。()

如果没有用到maps模块,可以直接删除,再制作升级包就可以了。

原文地址:https://www.cnblogs.com/luo1240465012/p/10577849.html