uniappapp更新
- 互联网
- 2025-08-05 10:18:01

uniapp app更新 这个版本要随之增加,不然刚更新时直接用app, 新包增加的那些页面跳转会有问题,不能跳新的页面
//app更新检测 updataApp(){ const that = this; uni.showLoading({title:'加载中...'}) plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) { let currentVersion = widgetInfo.versionCode; //获取当前版本号 console.log('当前版本',currentVersion) that.$api.getLatestVersion() .then(res =>{ console.log('版本',res) if(res.code == 200){ let newVersion = res.data.version; if (currentVersion < newVersion) { that.downloadUrl = that.baseUrl + res.data.path; console.log('下载路径',that.downloadUrl) that.openPop(666) } } }) }) }, //APP更新 actionApp(){ const that = this; const downloadTask = uni.downloadFile({ url: that.downloadUrl, success: (downloadResult) => { console.log('?????',downloadResult) plus.runtime.install( downloadResult.tempFilePath, { force: true }, function() { that.closePop() uni.showToast({ title: '安装成功,请重新启动', icon: 'none', mask:true }) // that.clearCache() plus.runtime.restart(); }, function(e) { console.log(e) that.closePop() uni.showToast({ title: '安装失败', icon: 'none', mask:true }) //关闭应用 setTimeout(() =>{ plus.runtime.quit(); },1000) }) }, fail: (err) => { that.closePop() console.log(err); uni.showToast({ title: '下载失败', icon: 'none', mask:true }) //关闭应用 setTimeout(() =>{ plus.runtime.quit(); },1000) } }) //下载进度监听 downloadTask.onProgressUpdate((res) => { if (res.progress <= 99) { console.log('下载进度'+res.progress+'%'); that.schedule = res.progress; } }); }, //清除app更新后的文件缓存 clearCache(type = 2) { // 第一种方式:彻底清理存储数据(用户数据),包括用户权限和缓存,但是这种方式清理之后当前的app会闪退出去,只有等待用户重新拉起。 if (type == 1) { plus.android.importClass("android.app.ActivityManager"); var Context = plus.android.importClass("android.content.Context"); var am = plus.android.runtimeMainActivity().getSystemService(Context.ACTIVITY_SERVICE); am.clearApplicationUserData(); return } // 第二种方式:清理内存存储文件(部分用户数据),不会清理用户权限,也不会闪退,一些静态的图片会被清理掉。 let main = plus.android.runtimeMainActivity(); let sdRoot1 = main.getFilesDir(); let filesOne = plus.android.invoke(sdRoot1, "listFiles"); let lenOne = filesOne.length; for (let i = 0; i < lenOne; i++) { let filePath = '' + filesOne[i]; // 没有找到合适的方法获取路径,这样写可以转成文件路径 plus.io.resolveLocalFileSystemURL(filePath, function(entry) { if (entry.isDirectory) { entry.removeRecursively(function(entry) { //递归删除其下的所有文件及子目录 console.log('清理文件数据完成') }, function(e) { console.log(e.message) }); } else { entry.remove(function(entry) { //递归删除其下的所有文件及子目录 console.log('清理文件数据完成') }, function(e) { console.log(e.message) }); } }, function(e) { console.log('清理文件数据失败') }); }; },uniappapp更新由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“uniappapp更新”
上一篇
网络协议基础