IOS脱机缓存WebView内容

IOS脱机缓存WebView内容,ios,caching,webview,offline,Ios,Caching,Webview,Offline,我需要在WebView中加载一个url,并下载网站的全部内容(文档、图像、css等),以便能够脱机工作 4-5年前,我用这个--> 最近,我被要求检查该应用程序是否仍然适用于最新的iOS版本。我发现本文中提到的大多数类现在都不推荐使用(例如:UiWebView或NSURLConnection) 当我现在运行应用程序时,缓存过程会启动,但在下载文件时,它会在某个点被卡住 我已启用CFNETWORK DIAGNOSTICS,大多数时候我都会遇到此错误:SSL\u error\u ZERO\u RET

我需要在
WebView
中加载一个url,并下载网站的全部内容(文档、图像、css等),以便能够脱机工作

4-5年前,我用这个-->

最近,我被要求检查该应用程序是否仍然适用于最新的iOS版本。我发现本文中提到的大多数类现在都不推荐使用(例如:
UiWebView
NSURLConnection

当我现在运行应用程序时,缓存过程会启动,但在下载文件时,它会在某个点被卡住

我已启用
CFNETWORK DIAGNOSTICS
,大多数时候我都会遇到此错误:
SSL\u error\u ZERO\u RETURN操作失败,因为连接已完全关闭并发出关闭通知警报。我做了很多研究,但都没有成功

我正在考虑用一个现代化的解决方案来重建整个应用程序,但实际上我没有发现任何清晰的东西。这类应用可能并不常见

我的问题是,现在是否有人能找到更好的方法。我甚至不在乎我是在
iOS
上进行本机操作,还是使用一些跨平台技术,如
Reac Native
flatter

欢迎提出任何建议

谢谢

编辑

我必须包装在
WebView
中的web实现了一个
服务工作者来缓存数据。因此,在
Safari
浏览器中,该网站可以脱机工作

我只需要在iOS应用程序中包装这个网站,我尝试了
SFSafariViewController
,但仍然无法工作


不推荐并不意味着不可用。还有很多应用程序使用
UIWebView
NSURLConnection
。在使用最新和最棒的软件重新编写应用程序之前,您应该了解问题所在。这里有一个很好的提示,可以调试您遇到的错误。简短版本:设置
CFNETWORK\u DIAGNOSTICS
环境变量,以便获得更好的网络调试信息


考虑到代码的使用年限,我认为从iOS9开始至少是一个因素。你应该仔细阅读,了解如何更新应用程序以满足这些要求。您肯定需要在应用程序的
Info.plist
文件中添加一两个键,并且您可能还希望更新应用程序以使用
https
URL而不是
http
。进行这些更改要比重写应用程序容易得多,而且你无论如何都需要满足ATS要求,所以你最好先做这部分。

谢谢你的回答@Caleb,我真的很感激:)正如我在帖子中所说,我已经设置了
CFNETWORK\u DIAGNOSTICS
。我没有提到这一点,但我还将
nsAllowsArbiralLoads
NSExceptionAllowsInsecureHTTPLoads
添加到我的
Info.plist
中,并使用
https
。在做了我能找到的一切之后,它仍然不起作用。我认为这与网站使用应用缓存缓存离线数据有关,现在它被更新为使用服务工作者