gpt4 book ai didi

ios - UIWebView 不会对 loadHTMLString 函数下载的资源使用磁盘缓存

转载 作者:行者123 更新时间:2023-11-28 14:00:20 25 4
gpt4 key购买 nike

我使用 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 资源实现磁盘缓存?

最佳答案

你可以实现一个自定义缓存协议(protocol)来捕获应用程序发出的所有网络请求(包括 webview)——在那时根据请求的 URL 手动将内容存储到磁盘,然后当你去加载HTML 字符串,您用正则表达式表示将加载到该字符串中的路径,如果有缓存内容,则将它们交换为本地路径。我不得不在我的老地方做这件事——不确定是否有更简洁的方法(注意——如果你决定使用 WKWebView,这种方法有效)。

关于ios - UIWebView 不会对 loadHTMLString 函数下载的资源使用磁盘缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53627967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com