簡體   English   中英

UIWebView不會將磁盤緩存用於loadHTMLString函數下載的資源

[英]UIWebView won't use disk caching for resoruces downloaded by loadHTMLString function

我使用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內容的?

您可以實現一個自定義緩存協議,以捕獲該應用程序發出的所有Web請求(包括webview)-將該內容相對於請求的URL手動存儲到磁盤上,然后在加載HTML字符串時正則表達式將在該字符串中加載的路徑,如果存在緩存的內容,則將它們交換為本地路徑。 我有我的老地方要做到這一點-不知道是否有一個更清潔的方式做到這一點(注意-如果你決定使用WKWebView這種方法行不通的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM