Может ли делегат изменить URL во время навигации по WKWebView? - PullRequest
0 голосов
/ 15 января 2020

WKWebView имеет свойство navigationDelegate. Этот делегат может разрешить или запретить навигационные действия (например, переход пользователя по ссылке) путем реализации:

func webView(_ webView: WKWebView, 
             decidePolicyFor navigationAction: WKNavigationAction,
             decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)

В типичных реализациях рассматриваются свойства navigationAction и вызывается decisionHandler(.cancel) или decisionHandler(.allow).

Я хотел бы сказать, что для определенных URL-адресов следует добавить определенные параметры запроса. Что-то вроде:

if navigationAction.request.url.path == "/foo" {
    navigationAction.request.url.query = "x=1&y=2"
    decisionHandler(.allow)
}

Этот код не работает, потому что request не является изменяемым.

Есть ли способ сделать это?

...