rel="external"
アンカーリンクに追加しました。
そして、クラスにshouldStartLoadWithRequest
メソッドを追加/オーバーライドしました:MainViewController
- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
// Intercept the external http requests and forward to Safari.app
// Otherwise forward to the PhoneGap WebView
if ([[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"]){
[[UIApplication sharedApplication] openURL:url];
return NO;
}
else {
return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];
}
}
これは、jQuery Mobile 1.2 と Phonegap 2.2.0 で機能します。Phonegap 2.3.0 でも同じように動作するはずですが、テストしていません。
================================================== ================================
更新:
Phonegap 2.7.0 以降では、これを行う必要がない場合があります。Phonegap は、UIWebView、Safari、または InAppBrowser コンポーネントのいずれかでリンクを開くことができるようになりました。個人的には InAppBrowser コンポーネントが気に入っています。多くのユースケースでユーザー エクスペリエンスが向上しているようです。リンクを Safari で開きたい場合は、Javascript を使用してこれを実行できるようになりました。
window.open('http://whitelisted-url.com', '_system');
または InAppBrowser の場合:
window.open('http://whitelisted-url.com', '_blank');
詳細については、こちらをご覧ください。
http://wiki.apache.org/cordova/InAppBrowser
http://docs.phonegap.com/en/2.7.0/cordova_inappbrowser_inappbrowser.md.html#InAppBrowser