2

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

我想在我的应用程序(IOS)中打开类似的外部链接

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

OpenAllWhitelistURLsInWebView : true

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

我不知道为什么 target="_blank" 不起作用,在这里:

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

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

我也尝试使用JS方式,

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

没有成功:(

PS:我确实在外部主机中设置了所有链接

我很感激任何帮助。

谢谢!

4

2 回答 2

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 ];
}
}
于 2012-11-05T06:33:42.653 回答
0

它适用于我使用以下设置:

Cordova.plist:

OpenAllWhitelistURLsInWebView: false

external Hosts: google.com

代码中的链接:

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

希望它也对你有用:)

于 2012-09-13T09:22:30.853 回答