Cordovoa との違いは正確にはわかりませんが、PG 1.4.1 で作業しており、PhoneGap.plistにこの設定があります。
そして、これは私のAppDelegate.mにあります
- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
if([[url absoluteString] rangeOfString:@"vimeo.com"].length > 0 || [[url scheme] isEqualToString:@"file"]){
return [self.viewController webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ];
}
[[UIApplication sharedApplication] openURL:url];
return NO;
}
これは、 PG によって開かれた非常に単純なindex.htmlです。
<body>
<a href="http://www.vimeo.com">Vimeo</a>
<a href="http://www.google.com">Google</a>
</body>
vimeo リンクは webview 内で開かれ、google リンクは Safari で開かれます。
更新コルドバ 1.7
どうやら、shouldSTARTLoadWithRequest 関数は最新バージョンの PhoneGap/Cordova では呼び出されません (1.6.1 以降だと思います)。したがって、リンクを Safari 内で開きたい場合target
は、タグの属性を に設定する必要があります_blank
。常にコードにアクセスできるとは限らないため、役立つスクリプトを次に示します。
<head>
<script type="text/javascript" src="cordova-1.7.0.js"></script>
<script>
document.onclick = checkLink;
function checkLink(e) {
var url = e.target.href;
if(url.indexOf('vimeo.com') == -1){
window.open(url,'_blank');
}
}
</script>
</head>
<body>
<a href="http://www.vimeo.com">Vimeo</a>
<a href="http://www.google.com" target="_blank">Google</a>
</body>