uniapp版本更新页面没有刷新怎么办

1. 问题描述

如果你在使用uniapp 开发应用过程中,发现更新了已经发布的 uniapp 版本之后,打包后的app没有更新,界面也没有刷新,这个问题该怎么办呢?

2. 可能原因

2.1 缓存问题

按照正常的流程,我们是通过在manifest.json 中配置版本号,在APP启动时,下载和比较新的包然后进行更新,但是在 IOS 中,APP从后台唤醒时,如果检测到已经加载了对应的包,就不会再进行更新。因此出现此类问题后,第一步需要检查缓存。

2.2 是否有新版本

如果app没有出现更新,是否有新的包可以更新呢?是否因为网络的原因,uniapp 框架和手机的之间没有成功比对版本号?需要确认是否有新版本发布和可以下载。

2.3 检查热更新的代码

我们在代码中可能使用热更新的方式来动态更新如js文件,但是热更新的功能不支持更新 manifest.json 配置文件,因此版本号应该是写死到配置文件中,如果是手动读取或通过某些方式读取版本号的,可能会导致版本号不匹配

3. 解决方法

3.1 热更新代码问题处理

我们需要确认你的代码是否正确,特别是是否正确的更新了版本号,例如:

// myMod 的修改和 uni.updateApp 保持一致,其中manifestUrl是你的manifest.json的URL地址;

// manifest.json 会被下载并保存到本地;

const myMod = uni.upxdate.createUpdater({

// 修改manifestUrl的值,即可重复下载、冷更新

manifestUrl: 'https://yourserver.com/yourpath/manifest.json',

success: () => { },

fail: () => { }

});

myMod.checkUpdate();

3.2 清除缓存

在ios中,我们可以使用类似如下的方法自动清理缓存:

const clearCache = () => {

const sdPath = plus.io.convertLocalFileSystemURL('_doc');

const clearDir = [`${sdPath}download/uni-app`];

plus.io.resolveLocalFileSystemURL(sdPath, function(entry) {

entry.getDirectory('download/uni-app', {create: false}, function(dirEntry) {

dirEntry.removeRecursively(function() {

console.log('清理成功');

});

});

});

};

在安卓中我们可以通过前往手机应用管理界面,并且选择相应的应用,在 “存储与内存” 中清理缓存

4. 结论

总而言之,uniapp 版本更新没有刷新页面可能是因为缓存问题、是否有新版本,或者热更新代码问题,我们需要通过检查代码并清除缓存来解决此问题,正确的解决此类问题,需要具备一定的uniapp和vue.js开发技能,如果遇到困难或不确定是否有问题时,可以参考官方文档或在官方论坛中寻找帮助。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。