我正在尝试在我的应用中打开一个外部网址链接,这是一个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>
答案 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
中所指定的那样