小权
小权
  • 发布:2020-03-19 23:43
  • 更新:2022-05-13 19:30
  • 阅读:4697

如何清除webview页面缓存?

分类:5+ SDK

我的5+app需要打开一些html5网页,由于这些html5网页随时会更新代码,所以我想禁用缓存,每次都加载最新的。
我在app中打开html5网页时,使用如下代码:

mui.openWindow({  
    id: id,  
    url: href,  
    extras: extras,  
    styles:{  
        cachemode:'noCache'  
    }  
});

cachemode这个参数只对安卓有效,iOS要如何设置?

html头加入

<meta http-equiv="expires" content="0">  
<meta http-equiv="pragma" content="no-cache">  
<meta http-equiv="cache-control" content="no-cache">  
<meta http-equiv="Cache" content="no-cache">

也是没有用的,看网上资料说,如果iOS端设置好了http加载的缓存策略时,优先以IOS端的设置的缓存策略为主,即ios 设置了缓存策略,而html5设置 不缓存,那么结果还是会缓存的,参考https://www.cnblogs.com/lolDragon/p/6861370.html

另外,我也不想每次打开页面都加一个时间戳。

iOS有没有类似cachemode:'noCache'这样的参数控制?或者有没有专门清理应用内webview页面缓存的方法?这样起码能通过一个操作来去掉缓存,加载到最新的html5页面

2020-03-19 23:43 负责人:无 分享
已邀请:
愿随风丶飘雪

愿随风丶飘雪 - 勿在浮沙筑高台

就在刚才遇到了同样的问题,这周五班都下不了了...

小权

小权 (作者)

目前我通过nativeJS手动清除缓存

var cache1=plus.ios.newObject('NSURLCache');  
var cache=plus.ios.invoke(cache1,'sharedURLCache');  
plus.ios.invoke(cache,'removeAllCachedResponses');  
plus.ios.invoke(cache,'setDiskCapacity',0);  
plus.ios.invoke(cache,'setMemoryCapacity',0);
  • 小权 (作者)

    代码打错了,正确代码:


    var cache1=plus.ios.newObject('NSURLCache');    
    var cache=plus.ios.invoke(cache1,'sharedURLCache');
    plus.ios.invoke(cache,'removeAllCachedResponses');
    plus.ios.invoke(cache,'setDiskCapacity:',0);
    plus.ios.invoke(cache,'setMemoryCapacity:',0);

    另外注意:这个只是UIWebView的清除缓存写法

    2020-07-29 11:15

小权

小权 (作者)

官方能否实现一个优雅的方式,比如像安卓一样,提供一个配置项

饲养员

饲养员 - 90后码农

遇到同样问题,不过只是安卓端,求教怎么解决

r***@qq.com

r***@qq.com

遇到了一样的问题,顶1下

  • l***@yeah.net

    想请教一下大神,是怎么解决的?

    2022-06-21 00:16

  • r***@qq.com

    回复 l***@yeah.net: 我不是大神,没解决,坐等解决方案→_→

    2022-06-22 09:12

  • 1***@qq.com

    回复 r***@qq.com: 同问

    2022-07-22 12:54

  • r***@qq.com

    回复 1***@qq.com: 同问

    2022-08-04 10:39

要回复问题请先登录注册