我正在尝试从value_1
上的this method访问请求对象:
WKNavigationDelegate
这似乎是一个简单的任务,但是我无法弄清楚如何直接从该方法中的可用对象访问optional func webView(_ webView: WKWebView,
decidePolicyFor navigationResponse: WKNavigationResponse,
decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void)
对象。我可以访问NSURLRequest
对象作为URLResponse
上的属性,然后将其强制转换为WKNavigationResponse
(因为它是一个网络请求),但是即使在HTTPURLResponse
上,我找不到引用初始请求的任何属性。我要做的是检测响应类型,然后根据类型,取消请求并将其作为数据任务手动下载。我浏览了HTTPURLResponse
,但没有找到任何允许访问待处理请求的属性。
我可以将每个待处理的请求手动保存在导航委托的WKWebView
方法中,并使用该请求,但是我找不到关于一次仅发生一个请求的任何文档。我可以存储未决请求的集合,但找不到任何将decidePolicyFor:WKNavigationAction
唯一地链接到WKNavigationRequest
的方法。
我现在正在手动取消WKNavigationResponse
中的特定请求。这比我在这里提出的要快,但是如果我要访问的后端更改了其端点,我的应用程序将崩溃。处理响应类型将是一个很好的实现方法。任何建议,不胜感激!