在Safari中打开外部链接(cordova)

时间:2015-07-16 18:24:06

标签: ios cordova browser

我正在尝试在我的应用中打开一个外部网址链接,这是一个cordova应用。现在它使用模态视图呈现在应用程序浏览器中,但它没有后退按钮或关闭按钮。用户在单击外部链接时基本上会卡住。例如,当有人点击此链接时,在“#34;访问网站”中显示,在应用程序浏览器中显示,网站显示正常,但无法导航回应用程序,或关闭应用浏览器。我该如何解决这个问题?

var element = $('.element');
var documentFragment = $(document.createDocumentFragment());
for (var i = 0; i < 4; i++) {
    element.clone().appendTo(documentFragment);
}
element.parent().append(documentFragment);

我看到有一个解决方案,window.open(&#34; http://stackoverflow.com&#34;,&#34; _system&#34;);但我不知道怎么做在href代码中实现它。

ANSWER(已编辑):将此代码添加到头部的脚本标记中。

<a href="http://www.sdtaproom.com/" target="_blank">Visit Website</a>

3 个答案:

答案 0 :(得分:15)

您可以在href属性中嵌入javascript代码。这应该可以解决问题:

<a href="javascript: window.open('http://www.sdtaproom.com/', '_system'); return false;">Visit Website</a>

您还必须安装InAppBrowser插件(不要被其名称欺骗)。

答案 1 :(得分:2)

另请注意,如果您使用allow-navigation中的config.xml指令列入链接域,则window.open(url, '_system')解决方案将无效。 (但您可能需要使用一些导航链接和其他一些链接作为外部链接。)

在这种情况下,您可以使用某些链接缩短服务,例如bit.ly,并链接到该网址而不是原始网址。

答案 2 :(得分:1)

正如您所见,here:混合语境中的所有解决方案都不适用于iOS和cordova / phonegap较新版本。

因此我建议使用原生插件,试试这个:

https://github.com/PaoloMessina/OpenUrlExt

此插件使用Android的此代码:

navigator.app.loadUrl(<my_url>, {openExternal : true});

和iOS的原生Objective-C解决方案:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:<my_url>]]; 

此插件可以使用plugman安装:

cordova plugin add https://github.com/PaoloMessina/OpenUrlExt

使用非常简单,如github README

中所指定的那样