【UNI
-
2023年4月23日发(作者:win10使用技巧)【UNI-APP开发-必看教程】APP⾃动更新(进度条)
UNI-APP笔记
【下⾯附⼀段实战应⽤的案例】
——Down Download(url,option,completedCB)
⾃动更新:
Downloader模块管理⽹络⽂件下载任务,⽤于从服务器下载各种⽂件,并⽀持跨域访问操作。通过ader获取下载管理
对象。Downloader下载使⽤HTTP的GET/POST⽅式请求下载⽂件,符合标准HTTP/HTTPS传输协议。
⽅法:
新建下载任务
枚举下载任务
清除下载任务
开始所有下载任务
对象:
管理⼀个下载任务
下载任务事件类型
下载任务状态
下载任务参数
回调⽅法:
下载任务完成时的回调
下载任务状态变化回调
枚举下载任务回调
使⽤: Download(url,option,completedCB)
说明:
请求下载管理创建新的下载任务,创建成功则返回Download对象,⽤于管理下载任务。
参数:
url: 要下载⽂件资源地址
( String ) 必选
要下载⽂件的url地址,仅⽀持⽹络资源地址,⽀持http或https协议。 允许创建多个相同url地址的下载任务。 注意:如果url地址中包
含中⽂或空格等,需要进⾏urlencode转换。
options: 下载任务的参数
( ) 可选
可通过此参数设置下载任务属性,如保存⽂件路径、下载优先级等。
completedCB: 下载任务完成回调函数
( ) 可选
当下载任务下载完成时触发,成功或失败都会触发。
返回值:
新建的下载任务对象
附代码:
createDownload(url) {
var dtask = Download(url, {},
function(d, status) {
ast({
title: '下载完成',
mask: false,
duration: 1000
});
// 下载完成
('status: ' + status);
if (status == 200) {
('下载成功:' + me);
('tLocalFileSystemURL(me): ' +
.convertLocalFileSystemURL(me))
l(tLocalFileSystemURL(me), {}, function(success) {
ast({
title: '安装成功',
mask: false,
duration: 1500
});
}, function(error) {
ast({
title: '安装失败-01',
mask: false,
duration: 1500
});
})
} else {
ast({
title: '更新失败-02',
mask: false,
duration: 1500
});
}
});
try {
(); // 开启下载的任务
var prg = 0;
var showLoading = iting("正在下载"); //创建⼀个showWaiting对象
ntListener('statechanged', function(task, status) {
('⾃动更新测试1:',task)
('⾃动更新测试2:',status)
// 给下载任务设置⼀个监听 并根据状态 做操作
switch () {
case 1:
le("正在下载");
break;
case 2:
le("已连接到服务器");
break;
case 3:
prg = parseInt((parseFloat(adedSize) / parseFloat(ize)) *
100);
le(" 正在下载" + prg + "% ");
break;
case 4:
aiting();
//下载完成
break;
}
});
} catch (err) {
} catch (err) {
('错误信息',err)
aiting();
}
}
思路:
1:初始化,调⽤后台更新接⼝
2:获取当前APP应⽤版本号,和应⽤版本名称
3:根据接⼝返回的数据判断是否需要更新,
4:不需要则提⽰,需要则进⾏以上代码更新的操作
后台更新数据表结构:
字段名含义说明
id标识列⾃增,唯⼀,⾮空
app_noapp应⽤版本号唯⼀,⾮空
app_nmapp应⽤版本名称唯⼀,⾮空
app_force是否强制更新默认不强制0
app_desc上传说明⽆
app_time上传时间⽆
另外如果有⼩伙伴对后台更新接⼝操作不清楚的同学,欢迎问答~
附官⽹⽂档链接:
-
downloader