Cordova製のiOSアプリで、リンクタグによるリンク先のページを、アプリ内ではなく別にブラウザ(Safari)を立ち上げて開く方法。
cordova-plugin-inappbrowserプラグインを用いる方法が一般的なようだが、なぜかうまく扱えなかった。
そこで、http://koyoy-lab.blogspot.jp/2012/05/cordovasafari.htmlのページにあるように、MainViewController.mを書き換える方法で実現させた。
- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = [request URL]; if( [[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"]) { [[UIApplication sharedApplication] openURL:url]; return NO; } else { return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType]; } }
「httpもしくはhttpsで始まるリンクは、別途ブラウザを立ち上げて開く」という処理になる。
アプリ内のコンテンツとしてのページはfileで始まる(らしい)ので、これで外部リンクのみが別ブラウザで開くというわけだ。