我使用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
那么,如何为UIWebViews资源实现磁盘缓存,该资源是通过loadHTMLString函数而不是loadRequest加载HTML内容的?
答案 0 :(得分:1)
您可以实施一个自定义缓存协议,以捕获该应用程序发出的所有Web请求(包括Webview)-将该内容根据请求的URL手动存储到磁盘上,然后在加载时您将正则表达式的HTML字符串排除在该字符串中将要加载的路径之外,如果存在缓存的内容,则将它们交换为本地路径。我不得不在我的旧地方进行此操作-不知道是否有更清洁的方法来进行处理(请注意-如果您决定使用WKWebView,则此方法不起作用)。