uni.request({
url: "http://2132", //请求更新地址
data: '',
success(res) {
if (!!res.data) {
uni.showModal({
title: '版本更新' + res.data.versionCode,
content: res.data.description,
confirmText: "更新",
showCancel: !res.forceUpdate,
success: function(e) {
if (e.confirm) {
if (plus.os.name.toLowerCase() == 'ios') {
// 跳转到下载页面
plus.runtime.openURL(res.data.upgradeUrl)
} else {
var dtask = plus.downloader.createDownload(
res.data.upgradeUrl, {},
function(d, status) {
uni.showToast({
title: '下载完成',
mask: false,
duration: 1000
});
// 下载完成
if (status == 200) {
plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, e => e, function(error) {
uni.showToast({
title: '安装失败-01',
mask: false,
duration: 1500
});
})
} else {
uni.showToast({
title: '更新失败-02',
mask: false,
duration: 1500
});
}
});
try {
dtask.start(); // 开启下载的任务
var prg = 0;
var showLoading = plus.nativeUI.showWaiting("正在下载"); //创建一个showWaiting对象
dtask.addEventListener('statechanged', function(
task,
status
) {
// 给下载任务设置一个监听 并根据状态 做操作
switch (task.state) {
case 1:
showLoading.setTitle("正在下载");
break;
case 2:
showLoading.setTitle("已连接到服务器");
break;
case 3:
prg = parseInt(
(parseFloat(task.downloadedSize) /
parseFloat(task.totalSize)) *
100
);
showLoading.setTitle(" 正在下载" + prg + "% ");
break;
case 4:
plus.nativeUI.closeWaiting();
//下载完成
break;
}
});
} catch (err) {
plus.nativeUI.closeWaiting();
uni.showToast({
title: '更新失败-03',
mask: false,
duration: 1500
});
}
}
} else {
//取消
}
}
});
} else {
uni.showModal({
title: '提示',
content: '已是最新版本',
showCancel: false
});
}
},
})
uniapp检查更新并显示下载进度
转载文章标签 安装失败 javascript ios 版本更新 服务器 文章分类 JavaScript 前端开发
上一篇:webrtc第一篇
下一篇:案例分析:项目组内踢皮球事件
-
uniapp在线升级和热更新实现
第一、分析APP升级的业务1、每次打开APP需要在全局App.vue中去检测请求后台接口2、对比版本号校验是否升级3、识别是
android web app ios 热更新 -
acess批量修改数据 excel导入
在大多数软件开发项目中,有一点需要使应用程序开始与其他应用程序或第三方组件通信。 无论是发送电子邮件通知,调用外部api,写入文件还是将数据从一个地方迁移到另一个地方,您都可以推出自己的解决方案或利用现有框架。 对于Java生态系统中的现有框架,我们可以发现Tibco BusinessWorks和Mule ESB ,另一方面是Spring Integration和Apache Camel
acess批量修改数据 excel导入 java python spring boot elasticsearch