我已经实现了这里所接受的解决方案,它可以适用于一些网站。例如:访问www.tomcruise.com并单击他的预告片,这些链接中的每一个都有target="_blank",在实现先前链接的堆栈溢出文章中建议的解决方案后开始打开。
当我从WKWebView中点击此链接时,下面的WKUIDelegate方法确实被调用,但navigationAction.request="",因此当webView.loadRequest("")被调用时什么也不会发生。还有其他人遇到这个问题吗?
但是我现在发现,如果我们在此处单击任何链接(截至撰写本问题时,我尝试的链接的href标记如下:
<a rel="nofollow" target="_blank" href="http://www.nowmagazine.co.uk/celebrity-news/victoria-and-david-beckham-fighting-to-be-together-296082" class="ot-anchor aaTEdf" jslog="10929; track:click" dir="ltr">http://www.nowmagazine.co.uk/celebrity-news/victoria-and-david-beckham-fighting-to-be-together-296082</a>
当我从WKWebView中点击此链接时,下面的WKUIDelegate方法确实被调用,但navigationAction.request="",因此当webView.loadRequest("")被调用时什么也不会发生。还有其他人遇到这个问题吗?
optional func webView(_ webView: WKWebView, createWebViewWithConfiguration configuration: WKWebViewConfiguration,
forNavigationAction navigationAction: WKNavigationAction,
windowFeatures windowFeatures: WKWindowFeatures) -> WKWebView?{
if navigationAction.targetFrame == nil {
webView.loadRequest(navigationAction.request)
}
return nil
}
- 以上指定的 href 标签有什么特殊之处,导致 WKUIDelegate 方法被调用时 url 为空?
- 我们该如何解决这个问题?请告诉我您是如何找到问题根源的,我也很感兴趣调试。