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
не является изменяемым.
Есть ли способ сделать это?