好的。我已经想到它是如何工作的。问题是关于导航类型。我已经使用下面的代表来完成这项工作。我已经使用我的应用程序进行过测试,并且可能有效。只有AdSense广告才会打开Safari。
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
let requestedURL = navigationAction.request.url
if navigationAction.navigationType == .linkActivated{
print("You have clicked the requested URL \(requestedURL)")
if requestedURL?.absoluteString.contains("doubleclick.net") == true{
UIApplication.shared.open(requestedURL!, options: [:], completionHandler: nil)
decisionHandler(.cancel)
}
}
decisionHandler(.allow)
}
当然,你需要确保你已经宣布
webView.uiDelegate = self
webView.navigationDelegate = self
我也把完整简化源代码,在我的Github上。随意在以下地址下载它,如果你不知道我的意思:
https://github.com/babyghost666/WKWebViewAdsense
随意更换,
UIApplication.shared.open(requestedURL!, options: [:], completionHandler: nil)
如果你想WKWebView做些别的事情后用户点击了Adsense。如果这个答案有帮助。请投票并接受。谢谢。
对不起,碰到这个,但我只是想知道如果有人有任何想法 –