外部URL无法在我的PhoneGap Android应用程序的系统浏览器中打开。我正在使用PhoneGap Build 2.3.0。
根据Cordova documentation我使用的目标'_system':
window.open('http://www.myurl.nl', '_system');
在我的config.xml中,我有:
<plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser" />
<access origin="*" browserOnly="true" />
但我的应用程序webview中的链接仍然打开。
如何解决这个问题?
答案 0 :(得分:15)
当您想继续使用PhoneGap Build时,这不是答案,但我通过在我的机器上为Cordova(PhoneGap)设置开发环境并在本地编译应用程序来解决问题。在Cordova 2.5.0 window.open('http://www.myurl.nl', '_system');
工作正常,它将打开系统浏览器中的链接。
所以我的建议是停止使用PhoneGap Build并开始在本地编译你的应用程序。 Here's how to set up your development environment for Cordova >>
答案 1 :(得分:14)
迟到的答案,但也许可以帮到某人。
navigator.app.loadUrl('https://google.com/', { openExternal:true });
Cordova 3.3.1
答案 2 :(得分: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" />
答案 3 :(得分:7)
这对我有用。 Phonegap 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");
}
});
希望有所帮助。
答案 4 :(得分:1)
@George Siggouroglou:对于最终会在文档中出现多次的元素使用id并不是一个好主意。相反,它的优良做法是使代码更加模块化。
如果期待触摸设备,它也是一个很好的选择,使用&#34;点击&#34;之前&#34;点击&#34;因为它比点击更快更快。检查触摸能力的东西我更喜欢使用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");
}
});
答案 5 :(得分:-1)
使用此
window.open('http://www.myurl.nl', '_blank', 'location=yes');