iOSアプリでWebViewを使うことは多々あるかと思います。
そんなWebViewで、表示しているWebViewで特定のリンクはWebViewで表示するのではなくてブラウザを起動したいというケースがあります。
そういう時は以下のサンプルコードのhttp://example.com
を好きなアドレスに変更すればOKです。
サンプルコード
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSString *checkURL = [request.URL absoluteString];
NSRange linkMatch = [checkURL rangeOfString:@"http://example.com"];
if (linkMatch.location != NSNotFound) {
[[UIApplication sharedApplication] openURL:request.URL];
return NO;
}
}
return YES;
}
UIWebViewNavigationTypeLinkClickedは、見ての通りWebviewでのリンクをクリックした時のことを指しています。
なので、別に特定のURLの時に限らず「http[s]://」ならブラウザで表示するといったことも出来ます。
その時は、[request.URL scheme]で判断すればOKです。