phonegap - 在浏览器中打开链接

时间:2012-12-28 14:17:03

标签: cordova cordova-2.0.0

我使用phonegap(cordova 2.2)

我有这样的链接:

<a href="http://twitter.com/foobar" target="_blank">twitter</a>

在iOS上 - 它在浏览器(Safari)中打开链接

但是在Android上 - 它会在webview中打开(在我的phonegap应用程序中)

有没有办法让Android的工作方式与iOS相同?

10 个答案:

答案 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;
}