19

外部 URL 没有在我的 PhoneGap Android 应用程序的系统浏览器中打开。我正在使用 PhoneGap Build 2.3.0。

根据Cordova 文档,我使用了目标“_system”:

window.open('http://www.myurl.nl', '_system');

在我的 config.xml 中,我有:

<plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser" />
<access origin="*" browserOnly="true" />

但仍然在我的应用程序 webview 中打开链接。

如何解决这个问题?

4

6 回答 6

15

当您想继续使用 PhoneGap Build 时,这不是答案,但我通过在我的机器上为 Cordova (PhoneGap) 设置开发环境并在本地编译应用程序解决了这个问题。在 Cordova 2.5.0window.open('http://www.myurl.nl', '_system');中完美运行,它会在系统的浏览器中打开链接。

所以我的建议是停止使用 PhoneGap Build 并开始在本地编译您的应用程序。以下是如何为 Cordova 设置开发环境 >>

于 2013-04-23T19:03:05.297 回答
14

迟到的答案,但可能对某人有帮助。

navigator.app.loadUrl('https://google.com/', { openExternal:true });

科尔多瓦 3.3.1

于 2014-02-22T17:12:26.607 回答
7

这个问题现在有点老了,但我觉得值得更新。现在,当与 2.9.0 一起使用时,这可以与 PhoneGap Build 一起正常工作。

我已经在 Android 4.3 和 iOS 6.1.3 上编译并测试了它。我的应用程序中没有 InAppBrowser 插件,因为它是在应用程序中打开页面,而不是导致本机浏览器打开它们,并且我只有以下访问标签:

<access origin="http://127.0.0.1*"/>
<access origin="http://phonegap.com" subdomains="true" />
于 2013-08-06T19:13:30.197 回答
7

这对我有用。电话间隙 3.1.0。

html代码:

<a id="ext-link" href="#">Google it</a>

或者

<button id="ext-link" href="#">Google it</button>

Javascript(使用 jQuery+cordova):

$("#ext-link").on("click"), function() {
    if (typeof navigator !== "undefined" && navigator.app) {
        // Mobile device.
        navigator.app.loadUrl('http://www.google.com/', {openExternal: true});
    } else {
        // Possible web browser
        window.open("http://www.google.com/", "_blank");
    }
});

希望有帮助。

于 2014-02-23T18:58:31.813 回答
1

@George Siggouroglou:对于最终将在文档中出现多次的元素使用 id 并不是一个好主意。相反,使代码更加模块化是一种很好的做法。

如果期待触摸设备,在“点击”之前使用“点击”也是一个不错的选择,因为它比点击更快更早地触发。要检查具有触摸功能的东西,我更喜欢使用modernizr,因为它使功能检测变得轻而易举。

jQuery Mobile 点击事件在单个目标对象上发生的快速、完整的触摸事件之后触发。它相当于标准点击事件的手势,由触摸手势的释放状态触发。 https://api.jquerymobile.com/tap/

希望对某人有所帮助

**html code:**

<a class="ext-link" href="#">Google it</a>

或者

<button class="ext-link" href="#">Google it</button>

Javascript(使用 jQuery):

//define tap or click event type on root level (can be combined with modernizr)
iaEvent = "click";
if (typeof navigator !== "undefined" && navigator.app) {
   iaEvent = "tap";
}
$('.ext-link').each.bind(iaEvent, function() {
    if (typeof navigator !== "undefined" && navigator.app) {
        // Mobile device.
        var linktarget = this.attr("href");
        navigator.app.loadUrl(linktarget, {openExternal: true});
    } else {
        // Possible web browser
        window.open(linktarget, "_blank");
    }
});
于 2014-05-02T14:27:40.997 回答
-1

用这个

window.open('http://www.myurl.nl', '_blank', 'location=yes');

于 2013-03-20T21:09:47.687 回答