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
。在做了我能找到的一切之后,它仍然不起作用。我认为这与网站使用应用缓存缓存离线数据有关,现在它被更新为使用服务工作者