uni-app 实现APP的版本更新

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

methods: {
	// 获取当前版本号
	// 检查是否安卓
	isandroid() {
		var that = this;
		uni.getSystemInfo({
			success: async (res) => {
				if (res.platform == "android") {
					let vurl='https://pcb.wttx56.cn/apk/sjv.json'
					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()
上一篇:katka-container搭建


下一篇:C#/.Net 部分缩写