首页 > 解决方案 > 缓存整个网站 - Swift

问题描述

在我的应用程序中,用户可以打开一个网站。该网站内容丰富(平均 20MB)。我的许多用户始终无法访问互联网,因此我们必须保存他们打开的任何内容(在他们查看的同时)。然后下次他们打开它时,它已经完全从磁盘加载了。

这就是我的想法:

  1. 使用 UIWebView 并缓存所有内容..这可以正常工作,但 UIWebview 已贬值。
  2. 使用 WKWebView,但我无法缓存所有内容 :( 我什至不确定我是否可以拦截所有请求和响应。
  3. 在应用程序内使用代理服务器并保存从远程服务器加载的所有数据,我不知道如何启动它。

基本上,我想要类似于https://github.com/evermeer/EVURLCache 但对于 WKWebView

问题:您推荐哪种方法?我怎样才能绕过提到的缺点?

标签: iosswiftcachingwkwebviewoffline

解决方案


使用 WKWebView,您可以使用URLRequests加载您的网站数据并缓存它。URLRequest 可以在初始化期间在其缓存策略中进行配置。

init(url URL: URL, 
cachePolicy: NSURLRequest.CachePolicy, 
timeoutInterval: TimeInterval)

您可以尝试继续前进returnCacheDataElseLoad。但是,即使主要使用缓存,这也可能不会涵盖您的特定情况。查看有关应用程序缓存和WKWebView.


推荐阅读