UIWebView不缓存远程图像

时间:2018-09-28 13:51:25

标签: ios caching uiwebview phonegap

我们有一个使用远程提供图像的Phonegap应用程序。

图像带有Cache-Control标头: '缓存控制':'max-age = 31536000'。

在iOS 12之前,图像仅获取一次并在使用该应用程序期间进行缓存。 升级到iOS 12后,缓存停止工作,并且始终从服务器获取图像。 我们使用UIWebView(我们尚未迁移到WKWebView)。

在iOS 12或任何其他平台(Android /网络)上的Safari中不会发生。

我找不到任何有关为何突然不再起作用的信息。有人有线索吗?

2 个答案:

答案 0 :(得分:0)

最后,我们最终迁移到WKWebView。

对于Phonegap / Cordova用户:我强烈建议您使用cordova-plugin-ionic-webview: https://github.com/ionic-team/cordova-plugin-ionic-webview即可快速迁移到WKWebView而不是UIWebView。

答案 1 :(得分:0)

UIWebView似乎没有缓存background-image。根据我的测试,使用<img />加载远程图像,缓存可以按预期工作。

此外,如果我们使用 global 变量保存相同 URL的图像,则UIWebView也可以缓存background-image

window.imageCache = new Image();
window.imageCache.src = 'https://xx.com/some/url/to/image';

// later in DOM, background images can be cached
// <div style="background: url(https://xx.com/some/url/to/image);"></div>