Phonegap 2.0,Cordova外部链接

时间:2012-08-16 18:14:16

标签: ios cordova

我有一种情况,我在谷歌花了很多时间没有成功。

我想在我的应用程序(IOS)中打开外部链接,就像那样

"<a href="http://google.com" target="_blank">External Link</a>"在Safari中打开而不是在网络视图中打开。我在“Cordova.plist”中设置的地方

OpenAllWhitelistURLsInWebView : true

因为我在我的应用程序中也有一些iframe,我想让用户保持在Web视图中而不是离开应用程序。

我不知道为什么target =“_ blank”不起作用,在这里:

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

在iOS上,如果某个域列入白名单,则链接将接管整个网页浏览,除非该链接的目标是_blank,在这种情况下,它将在浏览器中打开。如果不是,它将在设备上记录错误,而不是从用户的角度做任何事情。

我也尝试使用JS方式,

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

没有成功:(

PS:我的所有链接都在外部主机设置

我感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:4)

你需要的是MainViewController.m中的这个有魅力的人

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

答案 1 :(得分:0)

使用以下设置与我合作:

Cordova.plist:

OpenAllWhitelistURLsInWebView: false

external Hosts: google.com

代码中的链接:

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

希望它也适合你:)