在我将应用程序更新到Cordova 2.5.0之前,我的基本链接已打开到Safari中。现在它只是在我的应用程序视图中加载而不是加载到Safari中。
我有以下代码:
Contact Us by visiting, <a href="http://site.com/contact.php">
our website! </a>
关于我如何解决这个问题的任何想法。
有关详细信息:当我们从Cordova / Phonegap.plist切换到config.xml时,这一切都已开始。
答案 0 :(得分:5)
1)在safari中打开链接
将代码粘贴到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 ];
}
}
2)在InAppBrowser中打开链接
function OpenLink()
{
alert(adlink); //adlink: http://www.google.com
var ref = window.open(adlink, '_blank', 'location=yes');//adlink is url
var myCallback = function() { alert(event.url); }
ref.addEventListener('loadstart', myCallback);
ref.removeEventListener('loadstart', myCallback);
}
答案 1 :(得分:4)
在您的链接中添加target =“_ blank”。 即:
<a href="http://www.brandonbrotsky.com/" target="_blank"></a>
确保访问权限的来源为* /&gt;在你的config.xml中(确保它在app目录的根目录中,位于www文件夹上方。 即:
<access origin="*" />
将以下代码添加到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 ];
}
}
我制作了一个快速视频,解释了如何解决此问题:
http://www.youtube.com/watch?v=zqbjXSnAR-Q&feature=c4-overview&list=UUefS6KLvFQVjhmL6hiBq4Sg
希望它有所帮助!
答案 2 :(得分:1)
我最近一直在努力解决这个问题,并提出了一个至少对我有用的答案。 Cordova 2.6和JQuery Mobile。
<a href="http://yoursite.something.com" target="_system"> the external link </a>
你使用target =“_ blank”有相当多的答案。但这只是在他们的WebView中打开链接。希望这对你有用,就像它对我一样!
答案 3 :(得分:1)
你必须使用它:window.open('http://google.com','_ system');