uniapp检测更新功能开发记录 安卓版本

实现思路
1、在登录页面(首次加载页面)onReady(根据项目配置的首次触发的生命周期中)进行版本校验
如果检测到版本不一致 则调用 updateApp 方法进行更新提示

plus.io.resolveLocalFileSystemURL 方法可以根据相对路径获取下载文件夹。
entry.removeRecursively 递归进行文件夹删除

plus.downloader.createDownload 下载最新的安装包
plus.runtime.openFile 安装包安装

下面时实现代码

updateApp() {
				let self = this
				uni.showModal({
					title: '更新',
					showCancel: true,
					content: '检测到更新的版本,是否进行更新',
					confirmText: '更新',
					success: function(result) {
						if (!result.confirm) {
							self.goNextPage()
							return
						}
						try {
							 
							// 先清除已经下载的所有的安装包
							plus.io.resolveLocalFileSystemURL('_downloads/', 			                function(entry) {
								//									 
								entry.removeRecursively(function(entry) {
									 
									var downTask = plus.downloader.createDownload(
										config.VUE_APP_BASE_API_HPJY +
										'/appVersion/app/download',
										{},
										function(d, status) {

											console.log(status);
											//d为下载的文件对象
											if (status == 200) {
											 console.log(1);
												// 下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
												// var fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);									 
												plus.runtime.openFile(d.filename); //选择软件打开文件
											} else {
												//下载失败
												plus.downloader.clear(); //清除下载任务
												uni.showToast({
													icon: 'none',
													title: '更新失败'
												})
											}
										})
									//开始下载
									downTask.start();
									//监听下载进度		
									self.showpercentage = true
									downTask.addEventListener('statechanged', (task) => {

										let percentage = parseInt(
											(parseFloat(task.downloadedSize) /
												parseFloat(task.totalSize)) *
											100
										);
										self.percentage = percentage
										if (percentage == 100) {
											self.showpercentage = false
										}
									})
								}, function(e) {
									console.log(e,'---------');
								});
							}, function(e) {

							});
						} catch (e) {
							//TODO handle the exception

						}
					}
				})
			},

参考文档地址
1、https://www.html5plus.org/doc/zh_cn/io.html#plus.io.getFileInfo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值