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模块,可以直接删除,再制作升级包就可以了。

posted @   凉面好好吃  阅读(667)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示