14

我使用 phonegap (cordova 2.2)

我有这样的链接:

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

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

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

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

4

9 回答 9

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>
于 2012-12-31T04:38:47.050 回答
6

在安卓上试试这个:

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"/> 
于 2012-12-28T14:24:42.157 回答
4

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 链接应该在新的外部浏览器中打开。

于 2013-06-01T19:59:48.333 回答
3

如果你想在 ios 版本中使用 as,带有target="_blank"属性:

$(document).on('tap', 'a[target="_blank"]', function(e){
    navigator.app.loadUrl(e.target.href, { openExternal: true });
    return false;
});
于 2013-03-20T12:31:11.993 回答
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;
    }
});
于 2013-02-22T07:43:01.073 回答
1

即使不久前有人问过这个问题,我还是想告诉您以下帮助我的血腥条目:

https://build.phonegap.com/blog/access-tags

在 android 中,我所要做的就是取消我指定的域的白名单。所以在我的 config.xml 中我根本没有任何 `。

于 2013-06-10T12:23:16.613 回答
1

我遇到了同样的问题,我注意到大多数答案都是针对不同平台的。对我有用的解决方案是针对不同平台的详细说明

于 2013-04-11T05:22:10.813 回答
0

这在ios上对我有用

                    $("a[target='_blank']").on('tap touch click',function(e){
                        e.stopPropagation();
                        e.preventDefault();
                        window.open($(this).attr('href'), "_system");
                        return false;
                    });
于 2013-05-15T09:26:12.487 回答
0

phonegap 工作的导航器!

handler: function (btn, evt) {
loadURL('http://www.google.com');
}

...

function loadURL(url){
navigator.app.loadUrl(url, { openExternal:true });
return false;
} 
于 2013-11-27T17:10:41.040 回答