HBuilder的app自动更新

hbuilder自动跟新思路:首先获取到当前版本号,对比需要更新版本号,是否一致;否:开始更新

var wgtVer = null;

function plusReady() {
// Android处理返回键
plus.key.addEventListener('backbutton', function() {
if(confirm('确认退出?')) {
plus.runtime.quit();
}
}, false);

// 获取本地应用资源版本号
plus.runtime.getProperty(plus.runtime.appid, function(inf) {
wgtVer = inf.version;
console.log("当前应用版本:" + wgtVer);
checkUpdate();
});
}
if(window.plus) {
plusReady();
} else {
document.addEventListener('plusready', plusReady, false);
}

var checkUrl = "1.0.5"; //版本号从服务器获取
function checkUpdate() {
plus.nativeUI.showWaiting("检测更新版本...");
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
switch(xhr.readyState) {

//4完成
case 4:
plus.nativeUI.closeWaiting();
if(xhr.status == 200) {200//ok  
console.log("检测更新成功:" + xhr.responseText);
var newVer = checkUrl; //xhr.responseText
if(wgtVer && newVer && (wgtVer != newVer)) {
downWgt();
} else {
plus.nativeUI.alert("已是最新版,无需更新!");
}
} else {
console.log("检测失败!" + xhr.status + "。。。" + xhr.readyState);
plus.nativeUI.alert("检测失败!");
}
break;
default:
break;
}
}
xhr.open('GET', checkUrl);
xhr.send();
}

//下载

var Url = hturl + "APK/H5EC81A1A_HBGJ.apk"; /*下载页,资源路径*/
function downWgt() {
var cfi = confirm("是否下载新的安装包?");
if(cfi == true) {
plus.nativeUI.showWaiting("正在更新软件,请稍后...");
var dtask = plus.downloader.createDownload(Url, {}, function(d, status) { /*wode.html可以默认不用改,留着就行了*/
console.log(Url)
if(status == 200) {
console.log("成功:" + d.filename);
open(d.filename); // 打开下载地址
installWgt(d.filename);
} else {
console.log("打开下载页面失败!");
plus.nativeUI.alert("打开下载页面失败!");
}
plus.nativeUI.closeWaiting();
});

//下载事件监控
dtask.addEventListener("statechanged", function(task, status) {
if(!dtask) {
return;
}
switch(task.state) {
case 0:
console.log("未初始化!");
break;
case 1:
console.log("开始下载!");
break;
case 2:
console.log("连接到服务器!");
break;
case 3:
console.log("接收数据!");
break;
case 4:
console.log("下载完成!");
break;
}
});
dtask.start();
}
else {

}
}

//安装

function installWgt(path) {
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.downloader.createDownload官网讲解:http://www.html5plus.org/doc/zh_cn/downloader.html

原文地址:https://www.cnblogs.com/yeyuqian/p/9910273.html