zoukankan      html  css  js  c++  java
  • 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模块,可以直接删除,再制作升级包就可以了。

  • 相关阅读:
    Linux查看进程是否存在及启动或重启
    Leetcode 31.下一个排列 tag数组
    Leetccode 27.移除元素 tag数组
    Leetcode 24:两两交换链表中的节点
    当代90后的焦虑
    典型java面试题
    TD编译环境变量说明
    ubuntu20.04安装TD工具后编译错误
    ssh免密登录在Linux服务器之间的设置
    ubuntu20.04导航栏放到底部
  • 原文地址:https://www.cnblogs.com/luo1240465012/p/10577849.html
Copyright © 2011-2022 走看看