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