原文链接:http://ask.dcloud.net.cn/question/21326
PS:为什么没有官方的人来回答该类问题。
还是就是DCLOUD到底有没有技术支持类的客服?
不得不吐槽,要解决个bug 发个问题等两天都没人回答。
这产品到底还能不能用了?
代码如下:
**
* 检查更新
*/
function UpdateVersion(wgtVer) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
switch(xhr.readyState) {
case 4:
plus.nativeUI.closeWaiting();
if(xhr.status == 200) {
var newVer = xhr.responseText;
console.log("newVer:" + newVer);
if(wgtVer && newVer && (wgtVer != newVer)) {
mui.alert('发现新的资源更新包...', '资源更新', function() {
downWgt(); // 下载升级包
});
}
}
break;
default:
break;
}
}
var updateurl = getUpdatePath();
xhr.open('GET', updateurl);
xhr.send();
};
var downWgtWait = null;
/**
* 下载更新资源
*/
function downWgt() {
var wgtUrl = getUpdateWgtPath();
var dtask = null;
downWgtWait = plus.nativeUI.showWaiting("下载更新文件...");
dtask = plus.downloader.createDownload(wgtUrl, {
filename: "_doc/update/"
}, function(d, status) {
if(status == 200 || d.state == 4) {
installWgt(d.filename); // 安装wgt包
} else {
plus.nativeUI.closeWaiting();
plus.nativeUI.alert("下载更新文件失败!");
}
})
dtask.addEventListener("statechanged", onStateChanged, false);
dtask.start();
};
var updatechangeno = 0;
function onStateChanged(download, status) {
if(download.state == 3) {
if(updatechangeno == 0) {
updatechangeno = 1;
var current = '下载更新文件...' + parseInt(100 * download.downloadedSize / download.totalSize) + "%"
downWgtWait.setTitle(current);
setTimeout(function() {
updatechangeno = 0;
}, 1000);
}
}
};
/**
* 更新应用资源
* @param {Object} path
*/
function installWgt(path) {
downWgtWait.setTitle("安装更新文件...");
plus.runtime.install(path, {}, function() {
plus.nativeUI.closeWaiting();
plus.nativeUI.alert("应用资源更新完成!", function() {
plus.runtime.restart();
});
}, function(e) {
plus.nativeUI.closeWaiting();
plus.nativeUI.alert("安装更新文件文件失败[" + e.code + "]:" + e.message);
});
};
dongs (作者)
已添加下载代码,请帮忙看一下!
2016-07-29 14:28
Trust
回复 dongs:好的,有结果会尽快回复。
2016-07-29 14:35
Trust
回复 dongs:请上传完整项目,这样没办法测试的。
2016-07-29 14:37
dongs (作者)
项目无法上传的,你可以使用mui的demo加入更新测试一下。原先的代码中是没有“d.state == 4”的,会不会是这个原因呢?
2016-07-29 14:46
Trust
回复 dongs:你是下载wgt会这样,还是下载所有的资源都会这样?
2016-07-29 15:39
dongs (作者)
回复 Trust:下载wgt。主要是大部分是好的。偶尔会卡在99%。本地测试网络突然中断的情况下,在网络恢复时会自动下载。就是不清楚99%卡的原因。
2016-07-29 15:42
dongs (作者)
回复 Trust:哥们,你那边测试ok吗?
2016-08-01 08:24
Trust
回复 dongs:我这边测试没有问题的。
2016-08-01 09:40
dongs (作者)
回复 Trust:好的,谢谢
2016-08-01 09:46