Phonegap 2.0,科尔多瓦外部链接

问题描述:

我有一种情况,我花了这么多时间在谷歌没有成功。Phonegap 2.0,科尔多瓦外部链接

我想在我的应用程序(IOS),它是那样的

"<a href="http://google.com" target="_blank">External Link</a>"在Safari不是web视图中打开外部链接打开。在那里我已经在“Cordova.plist”

OpenAllWhitelistURLsInWebView : true

建立,因为我甲肝以及一些I帧我的应用程序,在这里我想保留用户的Web视图,而不是离开应用程序内。

的我不知道为什么目标=“_空白”不工作,在这里:

https://build.phonegap.com/blog/access-tags它说:

“在iOS ,如果一个域名被列入白名单,链接会接管整个webview,除非链接的目标是_blank,在这种情况下,它将在浏览器中打开,如果不是,它会在设备上记录一个错误,而从用户的角度来看什么都不做。

我试图使用JS方式作为好了,

window.open('http://www.google.com', '_blank'); 

没有成功:(

PS:我有我的外部主机的各个环节建立

我感谢所有帮助。

谢谢!

+0

如果你改变'OpenAllWhitelistURLsInWebView'为假,因为它听起来好像是发生什么事是你的目标......那么只有目标参数适用于那些想要在Safari – 2012-08-16 18:27:39

+0

所有在Safari中打开,即使是iframe来加载我想保留在APP – AlexC 2012-08-16 18:37:04

+0

是否被Google白名单列入?您可以将Google从白名单中排除,这应该强制它在浏览器中而不是应用中打开,同时保留iFrames的内部和白名单。 – ellemayo 2012-10-09 18:53:08

它与我使用以下设置:

Cordova.plist:

OpenAllWhitelistURLsInWebView: false 

external Hosts: google.com 

Link在代码:

< a target='_blank' href='http://maps.google.com/maps?q=something'> 

希望它为你工作,以及:)

在MainViewController.m中你需要的是这个charmer

- (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 ]; 
} 
} 
+0

感谢:D我在找几个小时找到你的答案:) – hgwd92 2012-12-18 13:19:11

+0

非常感谢!你救了我的一天.. :) – 2013-01-30 20:14:46