uniapp检查更新并安装

文章描述:

当用户点击检查更新的时候请求接口获取最新版本,根据与当前版本的对比进行更新


data里面version是版本号

export default {
	data:function(){  
            return{  
                version:1  
            }  
    },  
	onLoad: function () {     
            uni.getSystemInfo({  
                success:(res) => {  
                    console.log(res.platform);  
                    //检测当前平台,如果是安卓则启动安卓更新  
                    if(res.platform=="android"){  
                        this.AndroidCheckUpdate();  
                    }  
                }  
            })  
    },  
    methods: {  
            AndroidCheckUpdate:function(){  
                var _this=this;  
                uni.request({  
                    url: 'http://xxxx.com/version.txt',  
                    method: 'GET',  
                    data: {},  
                    success: res => {  
                        if(res.data>this.version){  
                            if(plus.networkinfo.getCurrentType()!=3){  
                                uni.showToast({  
                                    title: '有新的版本发布,检测到您目前非Wifi连接,为节约您的流量,程序已停止自动更新,将在您连接WIFI之后重新检测更新。',  
                                    mask: false,  
                                    duration: 5000,  
                                    icon:"none"  
                                });  
                                return;  
                            }  
                            uni.showToast({  
                                title: '有新的版本发布,检测到您目前为Wifi连接,程序已启动自动更新。新版本下载完成后将自动弹出安装程序。',  
                                mask: false,  
                                duration: 5000,  
                                icon:"none"  
                            });  
                            var dtask = plus.downloader.createDownload( "http://xxxx.com/app.apk", {}, 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();   
                        }  
                    },  
                    fail: () => {},  
                    complete: () => {}  
                });  
        },  
    }
}

 

安装

plus.runtime.install(//安装
	downloadResult.tempFilePath, {
		orce: true
	},
	function(res) {
		utils.showToast('更新成功,重启中');
		cache.setCache('version',version)
		plus.runtime.restart();
	}
);

 

发布时间:2022/05/11

发表评论