【问题标题】:UIWebView won't use disk caching for resoruces downloaded by loadHTMLString functionUIWebView 不会对 loadHTMLString 函数下载的资源使用磁盘缓存
【发布时间】:2018-12-05 08:23:38
【问题描述】:

我通过带有 loadHTMLString 函数的 HTML 字符串将 HTML 代码加载到我的 UIWebView 中。这些 HTML 页面中有相同的 1.5 MB 字体文件。根据蜂窝数据使用统计,第一次下载字体后,它会从 RAM 中使用它们。但是,当我从任务管理器中关闭应用程序,再次启动并加载 UIWebView 时,这些字体正在重新下载。

我尝试在下面运行代码,但没有运气。这个:

URLCache.shared.memoryCapacity = 40 * 1024 * 1024
URLCache.shared.diskCapacity = 50 * 1024 * 1024

还有这个:

let memoryCapacity = 40 * 1024 * 1024
let diskCapacity = 50 * 1024 * 1024
let cache = URLCache(memoryCapacity: memoryCapacity, diskCapacity: diskCapacity, diskPath: nil)
    URLCache.shared = cache

那么,如何为通过 loadHTMLString 函数而不是 loadRequest 加载其 HTML 内容的 UIWebViews 资源实现磁盘缓存?

【问题讨论】:

    标签: ios swift webview diskcache


    【解决方案1】:

    您可以实现一个自定义缓存协议,该协议捕获应用程序发出的所有 Web 请求(包括 Web 视图) - 在此时根据请求的 URL 将内容手动存储到磁盘,然后当您加载HTML 字符串,您正则表达式将在该字符串中加载的路径,如果有缓存的内容,则将它们交换为本地路径。我不得不在我原来的地方这样做 - 不确定是否有更清洁的方法来做到这一点(注意 - 如果你决定使用 WKWebView,这种方法 工作)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-28
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 2013-02-10
      • 2012-04-29
      • 2021-06-19
      相关资源
      最近更新 更多