ios - 缓存整个网站 - Swift
问题描述
在我的应用程序中,用户可以打开一个网站。该网站内容丰富(平均 20MB)。我的许多用户始终无法访问互联网,因此我们必须保存他们打开的任何内容(在他们查看的同时)。然后下次他们打开它时,它已经完全从磁盘加载了。
这就是我的想法:
- 使用 UIWebView 并缓存所有内容..这可以正常工作,但 UIWebview 已贬值。
- 使用 WKWebView,但我无法缓存所有内容 :( 我什至不确定我是否可以拦截所有请求和响应。
- 在应用程序内使用代理服务器并保存从远程服务器加载的所有数据,我不知道如何启动它。
基本上,我想要类似于https://github.com/evermeer/EVURLCache 但对于 WKWebView
问题:您推荐哪种方法?我怎样才能绕过提到的缺点?
解决方案
使用 WKWebView,您可以使用URLRequests加载您的网站数据并缓存它。URLRequest 可以在初始化期间在其缓存策略中进行配置。
init(url URL: URL,
cachePolicy: NSURLRequest.CachePolicy,
timeoutInterval: TimeInterval)
您可以尝试继续前进returnCacheDataElseLoad
。但是,即使主要使用缓存,这也可能不会涵盖您的特定情况。查看有关应用程序缓存和WKWebView
.
推荐阅读
- spring-boot - 如何在 Keycloak 中结合仅持有者和 client_credentials?
- tensorflow - 使用 parquet 文件的 TensorFlow 时间序列分类
- visual-studio - 在 Windows 上从 Visual Studio 读取/写入 docker 卷时出现问题
- powershell - 查找安装模块的源
- r - 循环/或应用函数以将 igraph 对象列表馈送到 R 中的函数中
- python - 如果出现几秒钟,如何在 python 中使用 Selenium 获取文本?
- css - 如何在 Typescipt 中为字符串添加换行符?
- android-studio - spinner.setOnItemSelectedListener 不给选定的项目
- visual-studio - VS2019 启动时出现 StreamJsonRpc.ConnectionLostException 错误
- php - Google OAuth2 身份验证失败(redirect_uri:缺少方案)