我有一种情况,我在谷歌花了很多时间没有成功。
我想在我的应用程序(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:我的所有链接都在外部主机设置
我感谢任何帮助。
谢谢!
答案 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'>
希望它也适合你:)