PhoneGap Build: как открыть внешний url в браузере устройств на Android?

Внешние URL-адреса не открываются в браузере системы в приложении Android PhoneGap. Я использую PhoneGap Build 2.3.0.

Согласно документации Кордовы, я использовал целевую систему _system:

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

В моем config.xml у меня есть:

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

Но все же ссылки открываются в моем веб-приложении приложений.

Как это решить?

Это не тот ответ, когда вы хотите продолжать использовать PhoneGap Build, но я решил проблему, настроив среду разработки для Cordova (PhoneGap) на моем компьютере и скомпилировав приложение локально. В Кордове 2.5.0 window.open('http://www.myurl.nl', '_system'); Отлично работает, он откроет ссылку в браузере системы.

Поэтому мой совет – прекратить использование PhoneGap Build и начать компиляцию своего приложения локально. Вот как настроить среду разработки для Кордовы >>

Поздний ответ, но может быть, это может помочь кому-то.

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

Кордова 3.3.1

Этот вопрос сейчас немного стар, но я чувствовал, что его стоит обновлять. Теперь это прекрасно работает с PhoneGap Build при использовании с 2.9.0.

Я собрал и протестировал его на Android 4.3 и iOS 6.1.3. У меня нет плагина InAppBrowser в моем приложении, так как открывать страницы в приложении, а не открывать их собственный браузер, и для тегов доступа у меня есть только следующее:

 <access origin="http://127.0.0.1*"/> <access origin="http://phonegap.com" subdomains="true" /> 

Это сработало для меня. Телефонная связь 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"); } }); 

Надеюсь, это поможет.

@George Siggouroglou: Не рекомендуется использовать идентификатор для элементов, которые в конечном итоге появятся более одного раза в документе. Вместо этого его хорошая практика сделать код более модульным.

Если ожидать сенсорных устройств, это также хороший выбор для использования «нажмите» перед «щелчком», потому что он срабатывает намного быстрее и раньше, чем щелчок. Чтобы проверить сенсорный материал, который я предпочитаю использовать 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 tab or click event type on rool 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"); } }); 

Использовать это

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