Я пытаюсь отобразить сообщение об ошибке, когда пользователь покидает разрешенные веб-сайты. Однако, несмотря на то, что я захожу на разрешенные веб-сайты, UIAlertController показывает «Отказано в доступе». Я предполагаю, что разрешенный веб-сайт загружает некоторые внешние URL, и у меня есть ошибка в моем методе "SolutionHandler". Вот код:
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
if let host = navigationAction.request.url?.absoluteString {
if host.contains(selectedWebsite) {
decisionHandler(.allow)
print("? \(host)")
return
}
}
let vc = UIAlertController(title: "Access Denied.", message: "Not allowed. Please go Back.", preferredStyle: .alert)
vc.addAction(UIAlertAction(title: "Go Back", style: .default, handler: nil))
present(vc, animated: true)
decisionHandler(.cancel)
print("? \(selectedWebsite)")
}
«selectedWebsite» - это массив строк с разрешенными URL-адресами, которые хранятся в viewController и передаются в WKWebView. Ничего особенного.
Отладчик показывает это, когда я пытаюсь достичь https://stackoverflow.com/, например:
? https://www.stackoverflow.com/ ? https://www.stackoverflow.com
То же самое относится и к apple.com., Google.com отлично работает.
Надеюсь, вы, ребята, поможете мне с этим.
Спасибо!