LoginSignup
19
18

More than 5 years have passed since last update.

特定のURLの時はWebViewでなくブラウザで表示する方法

Last updated at Posted at 2014-02-22

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です。

19
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
18