Получите доступ к NSURLRequest из WKNavigationDelegate's managePolicyForNavigationResponse: метод
Я пытаюсь получить доступ к объекту запроса из этого метода на WKNavigationDelegate
:
optional func webView(_ webView: WKWebView,
decidePolicyFor navigationResponse: WKNavigationResponse,
decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void)
Это кажется простой задачей, но я не могу понять, как получить доступ к NSURLRequest
Объект непосредственно из того, что доступно в этом методе. Я могу получить доступ к URLResponse
объект как свойство на WKNavigationResponse
и оттуда HTTPURLResponse
(так как это сетевой запрос), но даже на HTTPURLResponse
Я не могу найти какое-либо свойство, ссылающееся на первоначальный запрос. Я хочу определить тип ответа и, в зависимости от типа, отменить запрос и загрузить его вручную в качестве задачи с данными. Я просмотрела WKWebView
но не нашел никаких свойств, разрешающих доступ к ожидающим запросам.
Я мог вручную сохранить каждый ожидающий запрос в делегате навигации decidePolicyFor:WKNavigationAction
метод и использовать этот запрос, но я не смог найти никакой документации о том, происходит ли только один запрос за один раз. Я мог сохранить коллекцию ожидающих запросов, но не смог найти какой-либо способ уникальной связи WKNavigationRequest
к WKNavigationResponse
,
То, что я делаю сейчас, вручную отменяет определенный запрос в decidePolicyFor: WKNavigationAction
, Это быстрее, чем то, что я предлагаю здесь, но если бэкэнд, который я бью, изменяет свои конечные точки, мое приложение сломается. Обработка типа ответа была бы отличной реализацией. Любые предложения очень ценятся!