大丈夫です。私はそれがどのように機能するかを考えました。問題はnavigationTypeについてです。私は次のデリゲートを使ってその作業を行ってきました。私は自分のアプリケーションでテストされており、おそらく動作します。 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)
}
はもちろん、あなたが、私はまた私のGithubで完全な単純化されたソースコードを入れている
webView.uiDelegate = self
webView.navigationDelegate = self
を宣言していることを確認する必要があります。あなたは私が何を意味するかわからない場合は、以下のアドレスでそれをダウンロードしてお気軽に:
https://github.com/babyghost666/WKWebViewAdsense
あなたはWKWebViewは後に何かを行いたい場合は
UIApplication.shared.open(requestedURL!, options: [:], completionHandler: nil)
、交換してください気軽にユーザーはAdsenseをクリックした。この回答が役立つ場合。投票して受け入れてください。ありがとう。
申し訳ありませんが、私はちょうど誰にもアイデアがあると思っています –