我使用 phonegap (cordova 2.2)
我有这样的链接:
<a href="http://twitter.com/foobar" target="_blank">twitter</a>
在 iOS 上 - 它在浏览器中打开链接(Safari)
但在 Android 上 - 它在 webview 内打开(在我的 phonegap 应用程序内)
有没有办法让 Android 以与 iOS 相同的方式工作?
我使用 phonegap (cordova 2.2)
我有这样的链接:
<a href="http://twitter.com/foobar" target="_blank">twitter</a>
在 iOS 上 - 它在浏览器中打开链接(Safari)
但在 Android 上 - 它在 webview 内打开(在我的 phonegap 应用程序内)
有没有办法让 Android 以与 iOS 相同的方式工作?
这就是我在 Android 上使用 Cordova 2.2 和 jQuery mobile 的方式
Javascript:
$('.link').live('tap', function() {
url = $(this).attr("rel");
loadURL(url);
});
function loadURL(url){
navigator.app.loadUrl(url, { openExternal:true });
return false;
}
html:
<a href='#' class='link' rel='http://www.someurl.com'>Go Somewhere</a>
在安卓上试试这个:
function loadURL(url){
navigator.app.loadUrl(url, { openExternal:true });
return false;
}
html:
<a click="loadURL('http://twitter.com/foobar')">twitter</a>
你也可以在你的config.xml
:
<access origin="*twitter.com" browserOnly="true"/>
user1879822 提供的链接实际上对我来说是最有用的:https ://build.phonegap.com/blog/access-tags
总而言之,PhoneGap 在其 config.xml 中有一个允许 URL 的白名单。这意味着如果它有这样的条目......
<access origin="*" />
...它将尝试打开其自己的网络视图中的所有链接。但是,如果您将白名单限制为仅特定的 URL,则指向不在该列表中的 URL 的任何链接都将在外部浏览器中自动打开,而不是在本地 Web 视图中打开。例如,如果您将其限制为仅此...
<access origin="http://127.0.0.1*" />
...那么原始问题中提到的 twitter 链接应该在新的外部浏览器中打开。
如果你想在 ios 版本中使用 as,带有target="_blank"
属性:
$(document).on('tap', 'a[target="_blank"]', function(e){
navigator.app.loadUrl(e.target.href, { openExternal: true });
return false;
});
我将其用作一般规则:
$('a').live('tap',function(e){
// if external link then open a browser
if(String($(this).attr('href')).substring(0,4)=='http' || String($(this).attr('href')).substring(0,5)=='https'){
navigator.app.loadUrl($(this).attr('href'), { openExternal:true });
e.stopPropagation();
return false;
}
});
即使不久前有人问过这个问题,我还是想告诉您以下帮助我的血腥条目:
https://build.phonegap.com/blog/access-tags
在 android 中,我所要做的就是取消我指定的域的白名单。所以在我的 config.xml 中我根本没有任何 `。
我遇到了同样的问题,我注意到大多数答案都是针对不同平台的。对我有用的解决方案是针对不同平台的详细说明
这在ios上对我有用
$("a[target='_blank']").on('tap touch click',function(e){
e.stopPropagation();
e.preventDefault();
window.open($(this).attr('href'), "_system");
return false;
});
phonegap 工作的导航器!
handler: function (btn, evt) {
loadURL('http://www.google.com');
}
...
function loadURL(url){
navigator.app.loadUrl(url, { openExternal:true });
return false;
}