好的。我已經想到它是如何工作的。問題是關於導航類型。我已經使用下面的代表來完成這項工作。我已經使用我的應用程序進行過測試,並且可能有效。只有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。如果這個答案有幫助。請投票並接受。謝謝。
對不起,碰到這個,但我只是想知道如果有人有任何想法 –