uniapp 安卓app升级下载安装(只包含功能,并不涉及优化)

app接近尾声了,提出了几点建议,五一前就已经处理了大部分了,昨天下午写的app更新,今天来展示一下。

首先app更新是需要后端接口的,我这边需要的参数一个下载地址,一个版本号,还有一个软件名称,因为软件是需要强制更新的,所以就不做强制更新之类的了。

首先是用plus.runtime.version获取当前apk对应版本号,我用的是云打包,从manifest.json修改版本号

created() {
	this.androidVersion = plus.runtime.version//获取版本,并且记录
	uni.getSystemInfo({//uniapp检测使用设备
		success: (res) => {
			if(res.platform == 'android'){//如果是安卓设备执行
				this.AndroidCheckUpdate();
			}
		}
	})
},

其次是获取接口

AndroidCheckUpdate() {
	this.$get(api.GETVERSION).then(res => {
        //后端传入数据进行处理
		this.newappUrl = this.imageUrl + res.data.data.fileUrl;//apk下载链接
        //后端传入最新版本的版本号,每次发布新版都要修改
		this.getVersion = res.data.data.version
        //对版本号进行对比
		if(res.data.data.version != this.androidVersion){
			uni.showModal({
				content:"现版本已落后,请检查更新。",
				success: () => {
					uni.showLoading()
					this.upload()
				}
			})
		}
	})
},

然后是接下来是进行下载并且自动打开

upload(){
	var name = '*****.apk';//安装包名称
    //用HTML5语言进行下载传的参数分别为,url,option
    //option是对下载文件的操作,修改名称,设置下载地址。
	var appdownload = plus.downloader.createDownload(
		this.newappUrl, {filename: "_downloads/"+name},function(apk,status){
			uni.hideLoading()
            //下载成功后
			if(status == 200){
                //获取apk下载位置的有效路径
				var fileSaveUrl = plus.io.convertLocalFileSystemURL(apk.filename);
                //下载
				plus.runtime.install(fileSaveUrl),{},{},function(res){
                    console.log(res)    
                }
			}
		}
	)
    //执行下载
	appdownload.start()
},

 这是暂时的全部过程,优化是打算做进度条,然后提示升级,后续的强制升级,对提示做一下修补和判断

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值