2016-09-30 1 views
2

UIWebViewWKWebViewに変更しようとしています(Objective-C)。iOS WKWebview <a>タグの画像をクリックしたときの検出方法

<a href="http://click.adzcore.com/xyz"><img src="http://www.abc.xyz/smart/images/bnr/yyy.png" width="320" height="50" border="0" alt="+alt[n]+" onclick="_gaq.push(['_trackPageview','/smart/count/frognote']);"></a> 

私は画像の上にときに、ユーザーのクリックを検出したいので、私は:

- (void)webView:(WKWebView)webView decidePolicyForNavigationAction:(WKNavigationAction)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler { 

    if (navigationAction.navigationType == WKNavigationTypeLinkActivated) { 
     NSURL *url = navigationAction.request.URL; 
     [[UIApplication sharedApplication] openURL:url]; 
     decisionHandler(WKNavigationActionPolicyCancel); 
     return; 
    } 
    decisionHandler(WKNavigationActionPolicyAllow); 
} 

しかし、私はWKWebViewは「」タグ「画像」を含む「」とタグの内側にタグが含まれている参照 ユーザーが画像をクリックしたときにWKNavigationTypeLinkActivatedがキャッチされないため、このコードは正しくありません。

+0

@NeverHopeless:あなたの理想はありがたいですが、サーバーから返されたのでHTMLコードを制御できません。私は 'WKNavigationTypeOther'を使用しようとしましたが、画像をクリックしていなくてもイベントクリックがまだ呼び出されているので正しくありません。 – chaunv

+0

テストのために、このhtmlを入手したら、私の提案にしたがってタグを置き換えてください(必要なタグだけが置き換えられていることを確認してください:))最初に確認してください。 – NeverHopeless

答えて

0

研究の後、私は自分の問題を解決する解決策を見つけました。 私はイベントをクリックして画像をキャッチするためにWKNavigationTypeLinkActivatedを使用していません。

私のソリューション:クリック機能は、機能をクリック可能にネストされたイメージを持っていることができますので、あなたがつもりクリックされたかを決める方法

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler { 

    if ([navigationAction.request.URL.relativeString hasPrefix:@"http://click.adzcore.com/"]) { 
     NSURL *url = navigationAction.request.URL; 
     [[UIApplication sharedApplication] openURL:url]; 
     decisionHandler(WKNavigationActionPolicyCancel); 
     return; 
    } 

    decisionHandler(WKNavigationActionPolicyAllow); 
} 

は、それは私の仕事のためにOKです:)

関連する問題