uniapp 更新安卓app版本

2022年6月14日 405点热度 0人点赞 0条评论
//在App.vue中应用级生命周期里面是否有版本更新  注意条件编译 只在app端
<script> export default { // #ifdef APP-PLUS data() { return { version: 1.0.0, } }, // #endif onLaunch: function() {
// #ifdef APP-PLUS
console.log('App Launch应用启动,版本号是', plus.runtime.version) this.version = plus.runtime.version
uni.getSystemInfo({ success: (res) => { console.log(res.platform); //检测当前平台,如果是安卓则启动安卓更新 if (res.platform == "android") { this.AndroidCheckUpdate(); } } })
// #endif },
// #ifdef APP-PLUS methods: { AndroidCheckUpdate() { uni.request({ url: 'http://xxxxxx.net/api/checkVersion?version=' + this.version, //后端判断的接口 method: 'GET', data: {}, success: res => { if (res.data.data.upgrade == 'yes') { uni.showModal({ title: '提示', content: '检测到应用更新了新版本,点击升级!', success: (res) => { if (res.confirm) { console.log('用户点击确定'); uni.showLoading({ title: '下载中,请稍后...', }) var dtask = plus.downloader.createDownload( //应用内下载apk "http://xxxxxx.net/appokl/app.apk", { //apk下载地址 method: "GET" }, function(d, status) { // 下载完成 if (status == 200) { uni.hideLoading() console.log("下载成功开始安装: " + d.filename); plus.runtime.install(d.filename) //安装下载的apk } else { plus.nativeUI.alert("安装失败,请稍候重试: " + status) } }); dtask.start(); } else if (res.cancel) { console.log('用户点击取消'); } } }); } } }) } }, // #endif }</script>

前提是apk已上传到服务器。

进入app自动执行以上代码,调用接口得知是否有新版本,如有,会弹窗意识是否更新,点击确认会先在应用内下载apk,然后直接进入安装界面进行安装;如果没有新版本,则什么也没有,正常运行应用。

应用内下载的api,原生app的下载:

plus.downloader.createDownload("http://xxxxxx.net/appokl/app.apk", {    //apk下载地址      method: "GET"},function(d, status) {}

plus.runtime.install(d.filename)   安装api,d.filename是apk的临时文件

37480uniapp 更新安卓app版本

这个人很懒,什么都没留下

文章评论