本人不太会描述,该文只是记录一下,该项目是我们公司自己项目,项目完成之后,要对项目进行版本升级,这个时候就要求,对已经下载我们app的用户进行版本提示,提示用户点击升级来进行,版本的更新。
第一次尝试的时候是在app.vue文件中,在methods方法中定义自己的获取hbuilder中项目的版本号,但不知道什么原因,打印的数据总是会打印两遍,之后又在真机上进行测试,总会出现各种问题,最后将方法放到了home页面,因为我们商城是用户没有登陆的时候也可以进行查看商品的,所以放在首页也是可以,下面就是代码
获取hbuilder中项目的版本号:
// 获取版本号 getNativeVersion () { let that = this; document.addEventListener("plusready", function () { plus.runtime.getProperty(plus.runtime.appid, function (inf) { that.nativeVersion = inf.version; localStorage.setItem("nativeVersion", inf.version); that.checkupdate() /* 该函数是自己定义,用来获取后台返回的服务器端项目的版本号 */ }); }); }, //获取后端返回的服务器端的版本号, checkupdate () { this.axios.post(‘接口地址url’ , qs.stringify({ })).then((res) => { if (res.data.status == 1) { this.version = res.data.data.version /* 后端返回的服务器上面的版本号 */ this.downurl = res.data.data.downurl /* 后端返回的新版本的app的apk地址 */ // alert(res.data.data.version + '接口版本') // alert(localStorage.getItem('nativeVersion') + 'hbuilder版本') // alert(res.data.data.version != localStorage.getItem('nativeVersion')) if (res.data.data.version != localStorage.getItem('nativeVersion')) { /* 将后台返回的版本号和自己获取的hbuilder进行对比,不相等时说明版本不一致,弹出提示框,提示用户进行升级 */ MessageBox.confirm('', { title: '提示', message: '发现新版本', confirmButtonText: '升级', cancelButtonText: '取消' }).then(action => { if (action == 'confirm') { plus.nativeUI.toast("正在准备环境,请稍后!"); var dtask = plus.downloader.createDownload(this.downurl, {}, function (d, status) { if (status == 200) { var path = d.filename; /* 下载apk */ plus.runtime.install(path); /* 自动安装apk文件 */ } else { plus.nativeUI.alert('版本更新失败:' + status); } }); dtask.start(); } }).catch(error => { if (error == 'cancel') { alert('取消升级'); } }); } else { console.log('版本一致') } } else { alert(res.data.data.version) } }).catch((err) => { console.log(err); }); }, 写的时候参考了很多的文章,写的有什么问题欢迎大佬们指导。