【问题标题】:iOS WKWebview how to detect when I click on an image inside of <a> tagiOS WKWebview如何检测我何时点击<a>标签内的图像
【发布时间】:2016-09-30 02:51:07
【问题描述】:

我正在尝试在我的应用 (Objective-C) 中将我的 UIWebView 更改为 WKWebView。 我看到WKWebView 包含标签“a”,标签“a”内部包含标签“image”:

<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);
}

但是这段代码不正确,因为WKNavigationTypeLinkActivated 在用户点击图片时没有被捕获。

【问题讨论】:

标签: ios objective-c watchkit wkwebview watchos


【解决方案1】:

经过研究,我找到了解决问题的方法。 我不使用 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);
}

我的任务没问题 :)

【讨论】:

    猜你喜欢
    • 2018-08-28
    • 2020-09-29
    • 2021-11-22
    • 1970-01-01
    • 2014-06-23
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多