cha*_*unv 5 objective-c ios wkwebview watchkit watchos
我想改变我UIWebView要WKWebView在我的应用程序(Objective-C)。我看到WKWebView包含标签“a”和标签“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>
Run Code Online (Sandbox Code Playgroud)
我想检测用户点击图像的时间,所以我这样做:
- (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);
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码是不正确的,因为WKNavigationTypeLinkActivated当用户点击图像时没有被捕获。
经过研究,我找到了解决我问题的方法。我不使用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);
}
Run Code Online (Sandbox Code Playgroud)
我的任务没问题:)
| 归档时间: |
|
| 查看次数: |
5762 次 |
| 最近记录: |