吓一跳
吓一跳
  • 发布:2020-07-10 14:24
  • 更新:2023-03-24 09:43
  • 阅读:4170

webview缓存问题

分类:uni-app

uniapp使用webview加载h5打包的app在运行一个小时左右之后替换服务器h5文件不生效,删除h5文件之后app还是照常运行,应该是webview的缓存机制,但是如何设置呢

2020-07-10 14:24 负责人:无 分享
已邀请:
蜡笔小新人

蜡笔小新人

webview url参数后面加时间戳也用了,表示无效

  • 切图仔仔

    同样问题,请问怎么解决的

    2022-09-06 16:05

  • 6***@qq.com

    亲测时间戳有效,但是要加对地方

    原本:/uni_h5/#/pages/instock/index

    正确:uni_h5/?t=时间戳#/pages/instock/index

    错误:/uni_h5/#/pages/instock/index?t=时间戳

    2023-02-16 15:19

  • 6***@qq.com

    回复 切图仔仔: 踢一脚

    2023-02-16 15:20

luch

luch

目前没有办法,使用create缓存的能少一点。
在不需要缓存的页面。接收一个参数noCache 参数。
如果true,给webview url 拼接参数,参数值为当前时间戳,这样就不会缓存了

我在摸索

我在摸索

怎么写?如何解决的?没明白。

  • 1***@qq.com

    url后面加个随机参数就可以了,url有变化了,就会去服务器请求,不然可能还是读取之前缓存的内容

    2022-01-05 16:36

  • r***@qq.com

    回复 1***@qq.com: 请问下有没有方法能单独清掉web-view里的缓存?加时间戳参数明显不起作用

    2022-03-02 13:58

w***@163.com

w***@163.com

请问解决了吗???

蜡笔小新人

蜡笔小新人

同问,服务器端nginx配置无缓存,谷歌浏览器打开无缓存

但是webview会缓存。
IOS端设置plus以后有用,安卓无效,要么打开空白,要么打开还是旧页面。

官方有没有方法?

蜡笔小新人

蜡笔小新人

后端服务器配置,JS/CSS文件的缓存时间为 :-1s
location ~ .*.(js|css)?$
{
expires -1s;
error_log off;
}

前端打开webview页面处:
//ios 禁用缓存,测试生效!!
let cache1 = plus.ios.newObject('NSURLCache');
let cache = plus.ios.invoke(cache1, 'sharedURLCache');
plus.ios.invoke(cache, 'removeAllCachedResponses');
plus.ios.invoke(cache, 'setDiskCapacity:', 0);
plus.ios.invoke(cache, 'setMemoryCapacity:', 0);

//安卓端缓存清理。
plus.cache.clear();

亲测有效 ~

FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

要回复问题请先登录注册