UIWebView 不缓存远程图像

UIWebView not caching remote images

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

这些图片带有 Cache-Control header: 'Cache-Control':'max-age=31536000'。

在 iOS12 之前,图像在应用程序的使用过程中被提取一次并缓存。 升级到 iOS 12 后,缓存停止工作,图像总是从服务器获取。 我们使用 UIWebView(我们还没有迁移到 WKWebView)。

在 iOS 12 或任何其他平台 (Android / web) 上的 Safari 中不会发生这种情况。

我找不到任何关于为什么这突然不再有效的信息。有人知道吗?

最后我们迁移到了 WKWebView。

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

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

此外,如果我们使用global变量来保存same的ImageURL,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>