识别iOS中网页中的点击链接

时间:2014-10-09 10:14:40

标签: ios objective-c uiwebview objective-c++

我想在我的应用程序中的Web视图中加载一个URL。如果用户点击该网页上的任何URL,那么我想在默认的Safari应用程序中打开单击的URL,即在我的应用程序之外。 我知道shouldStartLoadWithRequest:但是每当新的URL开始加载时它都会被调用,即使它在我的网页中加载了一个图像。

如何识别该用户点击了我网页上的网址?

1 个答案:

答案 0 :(得分:2)

您可以查看navigationType

中的webView:shouldStartLoadWithRequest:navigationType:参数
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { 
  switch (navigationType) {
    case UIWebViewNavigationTypeLinkClicked:
      // user clicked on link
    break;
    case UIWebViewNavigationTypeOther: 
      // request was caused by an image that's being loaded
    break;
  }
  return YES; 
}

您可以使用更多UIWebViewNavigationTypes来确定导致请求的原因:

enum {
   UIWebViewNavigationTypeLinkClicked,
   UIWebViewNavigationTypeFormSubmitted,
   UIWebViewNavigationTypeBackForward,
   UIWebViewNavigationTypeReload,
   UIWebViewNavigationTypeFormResubmitted,
   UIWebViewNavigationTypeOther
};
typedef NSUInteger UIWebViewNavigationType;