从WKNavigationDelegate的definePolicyForNavigationResponse:方法访问NSURLRequest

时间:2019-06-14 13:34:46

标签: ios wkwebview wknavigationdelegate

我正在尝试从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中的特定请求。这比我在这里提出的要快,但是如果我要访问的后端更改了其端点,我的应用程序将崩溃。处理响应类型将是一个很好的实现方法。任何建议,不胜感激!

0 个答案:

没有答案