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

hbuilder 开发app 自动升级的更多相关文章

  1. HBuilder开发APP自动登录时跳过"登录页面"

    刚接触开发公司APP项目,用HBuilder开发工具. manifest.json中的入口页面就是"登录页面",现在获取到自动登录状态是true,但是真机联调时"登录页面 ...

  2. HTML5进阶(二)HBuilder实现软件自动升级

    HBuilder实现软件自动升级 前言 移动APP开发好后需要实现软件自动升级功能,经过一番搜索,发现HBuilder具有"App资源在线升级更新"的功能,遂研究之. 经过一番测试 ...

  3. HTML5进阶(三)HBuilder实现软件自动升级(优化篇)

    HBuilder实现软件自动升级(优化篇) 前言 受前篇博客<HTML5进阶(二)HBuilder实现软件自动升级>(点击查看详情)的影响,测试过程中发现APP自动更新还是存在问题,第一次 ...

  4. HBuilder开发App教程04-最难搞定的是mui

    前言 前几篇说到一些HBuilder开发app的基础教程, 现在来说一下HBuilder开发app的难点,或者说是上手的难点, 就是mui, 如果你没有研究mui就贸然的上手HBuilder,那你的开 ...

  5. Hbuilder开发app实战-识岁03-文件上传

    前言 做app不得不谈的问题就是文件上传.用hbuilder开发app让上传变的非常easy. Uploader Uploader模块管理网络上传任务,用于从本地上传各种文件到server,并支持跨域 ...

  6. HBuilder开发App教程06-首页

    实战 前面几节基本是一些概念的普及, 正如前面提到的,本教程会以滴石作为范例进行解说, 有兴趣的能够先行下载体验一下.或者下载源代码研究下. 新建项目 打开HBuilder,在项目管理器中右键--新建 ...

  7. HBuilder开发App教程05-滴石和websql

    滴石 介绍 滴石是用HBuilder开发的一款计划类app. 用到HBuilder,mui.nativejs以及h5一些特性. 预期 眼下仅仅开发到todolist级别, 以后计划做成日计划,月计划, ...

  8. Hbuilder开发app实战-识岁06-face++的js实现【完结】

    前言 因为识岁app比較简单.所以这节就完结吧, 当然另一些能够优化完好的地方,可是个人兴趣不是非常大, 有想继续完好的,源代码在这里:https://github.com/uikoo9/shisui ...

  9. uniapp 证书 打包上线GooglePlay app自动升级

    uniapp Android证书 打包上线GooglePlay app自动升级 1.Android证书申请 要安装jdk并配置环境变量. keytool -genkey -alias android ...

随机推荐

  1. centos下如何查看命令由哪个包提供

    今天在使用centos进行端口查看的时候发现系统没有netstat命令 yum安装发现并没有同名的包 经过一番查阅 学习到了 yum whatprovides/provides [commandNam ...

  2. K8S的资源管理

    K8S的资源管理 管理K8S资源的三种基本方法: 陈述式资源管理方法-使用cli工具进行管理. 声明式资源管理方式-主要依耐资源配置清单. GUI式资源管理方法-主要依耐图形界面. 陈述式资源管理方法 ...

  3. 1.5 RPM红帽软件包1.6 Yum软件仓库

    1.5 RPM红帽软件包 在RPM(红帽软件包管理器)公布之前,要想在Linux系统中安装软件只能采取源码包的方式安装.早期在Linux系统中安装程序是一件非常困难.耗费耐心的事情,而且大多数的服务程 ...

  4. zabbix官方源替换为阿里云的zabbix源,一键脚本。(安装zabbix报错curl#18 - "transfer closed with 2988713 bytes remaining to read":15 ETA Trying other mirro)

    最近突然安装zabbix总是报错,比如 (24/27): t1lib-5.1.2-14.el7.x86_64.rpm | 166 kB 00:00:00 zabbix-web-4.4.6-1.el7. ...

  5. 022.Python模块序列化模块(json,pickle)和math模块

    序列化模块 一  序列化模块 pickle 1.1 基本认识 序列化:把不能够直接存储的数据变成可存储的过程就是序列化 反序列化:把储存的数据拿出来恢复成原来的数据类型就是反序列化 例如,一个文件不可 ...

  6. Spring Cloud 升级之路 - 2020.0.x - 6. 使用 Spring Cloud LoadBalancer (1)

    本项目代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 我们使用 Spri ...

  7. 如何设计 API 接口,实现统一格式返回?

    文章目录: 目录 前后端接口交互 接口返回值约定 返回值规范 正确返回 错误返回 统一定义错误码 错误码规范 Controller 层如何用? 正确返回 错误返回 详细代码实现 错误码 Control ...

  8. typora的一些使用

    1.介绍typora 支持markdown语法的一款写作app 真的足够简洁高效 2. typora和其他工具配合实现功能 如插入图片 截图 gif等等图库 smms图库的使用 需要使用PicGo和s ...

  9. 摄像头与毫米波雷达(Radar)融合

    摄像头与毫米波雷达(Radar)融合 Input: (1)图像视频分辨率(整型int) (2)图像视频格式 (RGB,YUV,MP4等) (3)毫米波雷达点云信息(点云坐标位置x,y,浮点型float ...

  10. 如何选择视觉CV光源颜色

    如何选择视觉CV光源颜色 一.光源颜色分类 光源颜色的选择对机器视觉光源有什么影响及意义呢,常用的光源颜色有白色(W).蓝色(B).红色(R).绿色(G).红外光(IR).紫外光(UV),这六种颜色. ...