2014-10-09 18 views
0

我想在我的应用程序中的网页视图中加载一个URL。如果用户点击该网页上的任何网址,我想在默认的Safari浏览器应用程序中打开点击的网址,即不在我的应用程序中。 我知道shouldStartLoadWithRequest:但它会在新URL开始加载时得到调用,即使它正在我的网页中加载图像。识别iOS网页中的链接点击

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

+0

什么样的图像加载?我的意思是特定的URL,这样你可以测试最后一个URL组件,如果它有一个像JPG/PNG结尾的文件? – TMob 2014-10-09 11:18:25

回答

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; 
+0

谢谢joern!这非常有帮助。 :) – iAsh 2014-10-09 11:46:27