uniapp 在线更新安装包
app升级在线更新,用到 Downloader模块管理网络文件下载任务,用于从服务器下载各种文件,并支持跨域访问操作。通过plus.downloader获取下载管理对象。Downloader下载使用HTTP的GET/POST方式请求下载文件,符合标准HTTP/HTTPS传输协议。
plus.nativeUI.showWaiting("下载更新文件..."); //下载更新文件...
let options = {
method: "GET"
};
let dtask = plus.downloader.createDownload(url, options);//url 为wgt包的网络地址
dtask.addEventListener("statechanged", function(task, status) {
switch (task.state) {
case 1: // 开始
break;
case 2: //已连接到服务器
vm.update_ing = true;
break;
case 3: // 已接收到数据
vm.downloadedSize = task.downloadedSize;
let totalSize = 0;
if (task.totalSize) {
totalSize = task.totalSize //服务器须返回正确的content-length才会有长度
}
vm.schedule = parseInt(100 * task.downloadedSize / totalSize);
break;
case 4:
vm.installWgt(task.filename); // 安装wgt包
break;
}
});
dtask.start();
wgt包,放在IIS服务下面,刚开始总是找不到文件报404错误。后面才想到是资源不被应许。在IIS下 “MIME类型” 中添加 文件扩展名输入:.wgt MIME类型输入:application/widget
果然添加了之后就能正常更新找到wgt包了。