WKWebView检查Web视图是否支持加载文件

我正在创建一个iOS应用程序。我在某个阶段使用WKWebView来显示某些扩展名类型的文件。对于音频,视频,html,文本,pdf,文档文件,其效果很好。但是.zip,.csv等文件无法正常显示数据或显示空白屏幕,而我在其导航委托方法中却没有任何错误。

我的问题是如何检查WKWebView是否能够加载/支持该文件?因此,如果它无法加载或支持该文件,我可以显示另一个视图,在该视图中我将直接将该文件下载到文件管理器,并为用户提供保存或共享该文件的选项。

就像在Safari浏览器中,当我尝试加载zip文件时,它不显示任何预览,它显示要下载的警报(在iOS 13中)或显示“保存并共享文件”操作(在iOS 13中)。 Safari如何检测其是否支持该文件?

  

请不要建议对MIME类型或扩展名使用直接字符串匹配,因为世界上可能有超过1000个文件扩展名。

rustybash 回答:WKWebView检查Web视图是否支持加载文件

您需要将控制器设置为webView.navigationDelegate,并按如下所示定义导航响应委托回调:

func webView(_ webView: WKWebView,decidePolicyFor navigationResponse: WKNavigationResponse,decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {

    if navigationResponse.canShowMIMEType {
        decisionHandler(.allow)
    } else {
        decisionHandler(.cancel)
        // do something else with `navigationResponse.response`
    }
}
本文链接:https://www.f2er.com/3102851.html

大家都在问