我使用phonegap(cordova 2.2)
我有这样的链接:
<a href="http://twitter.com/foobar" target="_blank">twitter</a>
在iOS上 - 它在浏览器(Safari)中打开链接
但是在Android上 - 它会在webview中打开(在我的phonegap应用程序中)
有没有办法让Android的工作方式与iOS相同?
答案 0 :(得分:27)
这就是我在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>
答案 1 :(得分:6)
试试这个Android:
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"/>
答案 2 :(得分:4)
user1879822提供的链接对我来说实际上是最有用的:https://build.phonegap.com/blog/access-tags
总而言之,PhoneGap在其config.xml中具有允许URL的白名单。这意味着如果它有这样的条目......
<access origin="*" />
...它会尝试在自己的网页浏览中打开所有链接。但是,如果您将白名单限制为仅限特定网址,则该列表中指向非的网址的任何链接都将自动在外部浏览器中打开,而不是在您的本地网页浏览中打开。例如,如果你只将它限制在......
<access origin="http://127.0.0.1*" />
...然后原始问题中提到的twitter链接应该在新的外部浏览器中打开。
答案 3 :(得分:3)
如果您想在ios版本中使用target="_blank"
属性:
$(document).on('tap', 'a[target="_blank"]', function(e){
navigator.app.loadUrl(e.target.href, { openExternal: true });
return false;
});
答案 4 :(得分:1)
我将此作为一般规则使用:
$('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;
}
});
答案 5 :(得分:1)
我遇到了同样的问题,我注意到大多数答案都是针对不同的平台而混淆的。适用于我的解决方案是Detail Explanation for different platforms
答案 6 :(得分:1)
即使前一段时间被问过这个问题,我也想告诉你关于以下blod条目的信息,这有助于我:
https://build.phonegap.com/blog/access-tags
在android中,我所要做的就是将我指定的域名改为白名单。所以在我的config.xml中,我根本没有。
答案 7 :(得分:0)
这对ios起了作用
$("a[target='_blank']").on('tap touch click',function(e){
e.stopPropagation();
e.preventDefault();
window.open($(this).attr('href'), "_system");
return false;
});
答案 8 :(得分:0)
导航器适用于phonegap!
handler: function (btn, evt) {
loadURL('http://www.google.com');
}
...
function loadURL(url){
navigator.app.loadUrl(url, { openExternal:true });
return false;
}
答案 9 :(得分:-1)
使用PHONEGAP 3.5进行工作
<a href="javascript:loadURL('http://www.lavidaenbinario.com');" class="link ">Example</a>
function loadURL(url){
navigator.app.loadUrl(url, { openExternal:true });
return false;
}