问题
使用了react-native-webview的WebView嵌套h5页面,但是当h5发版之后,重新打开app,h5还是发版前的页面。
并且这个缓存严重,每次都要清理缓存或者重装app,页面不能及时更新,影响用户体验。
解决
rn项目中,在h5链接后边拼接时间戳,代码如下:
注意:这里缓存使用的是@react-native-async-storage/async-storage。
代码中的customerStateStorage是自己封装的本地存储的公共方法,代码主要是提供思路
let refreshTime = await customerStateStorage.refreshTime;
let currentTime = new Date().getTime();
if (refreshTime && currentTime - refreshTime <= 30 * 60 * 1000) { // 30分钟后更新
currentTime = refreshTime;
} else {
customerStateStorage.setRefreshTime(currentTime);
}
const baseUrl = 'xxxx';
setWebViewUrl(baseUrl + '?' + currentTime);
以上代码相当于,在h5发版之后,30分钟后退出app,重新进入app,h5即可刷新。这个时间自己可以按需修改,时间太短可能用户多次退出重进app,每次都需要重新加载h5相关资源。
- react-native WebView native 问题 reactreact-native webview native问题 react-native native问题react react-native native react react-native-vector-icons react-native react-native unavailable fsevents watcher react-native native系统react react-native present native bundle react react-native片段 代码 react-native解决方案 方案native react-native native手机react