uni-app 实现APP的版本更新

5 篇文章 1 订阅

定义检测版本与下载的事件

methods: {
	// 获取当前版本号
	// 检查是否安卓
	isandroid() {
		var that = this;
		uni.getSystemInfo({
			success: async (res) => {
				if (res.platform == "android") {
					let vurl='获取版本地址'
					try{
						let {data} = await Request(vurl)
						plus.runtime.getProperty(plus.runtime.appid, function(inf) {
							const wgtVer = inf.version; //获取当前版本号
							const version = plus.runtime.version;
							// console.log(wgtVer,version);
							if(version!==data.version){
								that.AndroidCheckUpdate(data.url);
							}
						});

					}catch(e){
						console.log(e);
						//TODO handle the exception
					}
				}
			}
		})
	},
	// 自动更新
	AndroidCheckUpdate(url) {
		var that = this;
		uni.showToast({
			title: '有新的版本发布,检测到您目前为Wifi连接,程序已启动自动更新。新版本下载完成后将自动弹出安装程序。',
			mask: false,
			duration: 5000,
			icon: "none"
		});
		var dtask = plus.downloader.createDownload(url, {}, function(d, status) {
			// 下载完成  
			if (status == 200) {
				plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, {}, function(error) {
					uni.showToast({
						title: '安装失败',
						mask: false,
						duration: 1500
					});
				})
			} else {
				uni.showToast({
					title: '更新失败',
					mask: false,
					duration: 1500
				});
			}
		});
		dtask.start();
	},
}

外围建立获取事件

function Request(url){
		return new Promise((resolve,rej)=>{
			uni.request({
			    url,
			    success: (res) => {
			        resolve(res)
			    },
				fail(e) {
					rej(e)
				}
			})
		})
	}

最后在onLaunch执行

this.isandroid()
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值