Я загружаю контент из документа на диске Google (опубликован) в WKWebView, но не могу открыть некоторые ссылки. Я пытаюсь открыть их в Safari, но если мне удастся открыть их в веб-представлении, это тоже нормально.
Я использую WKUIDelegate с этим методом:
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
let url = navigationAction.request.url!
print(navigationAction.request.url!)
if navigationAction.targetFrame == nil, UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(navigationAction.request.url!, options: [:], completionHandler: nil)
}
return nil
}
Проблема здесь в том, что navigationAction.request.url! для некоторых ссылок "" (пусто), поэтому я не могу их открыть (canOpenURL возвращает false)
Например, ссылки, которые я не могу открыть, выглядят так:
<a class="c6" href="https://www.google.com/url?q=https://www.youtube.com/watch?v%3DYK.....">Tutorial</a>
И ссылки, которые я могу открыть:
<a target="_blank" title="Learn more about Google Drive" href="//docs.google.com/">Google Drive</a>
В последнем случае navigationAction.request.url действителен, как написано в теге.
Есть ли способ решить эту проблему?
EDIT:
Я пробовал долго нажимать на ссылку и копировать ссылку, и кажется, что URL скопирован правильно, поэтому в загруженном html проблем нет.
После еще нескольких тестов я обнаружил, что некоторые проблемы связаны с реальными ссылками, например, если я пытаюсь открыть https://google.com/url.... https://docs.google.com... или youtube.com или некоторые другие сайты, это работает, но если Я пытаюсь открыть https://www.google.com/... не работает