Cordova 3.5 - открытые ссылки Android в браузере мобильной системы вообще не работают

Я знаю, что об этом спрашивали много раз. Но для жизни я не могу заставить его работать со всеми этими решениями.

Я использую Cordova 3.5 + jquery mobile (для проектирования) + некоторые плагины js.

Это то, что я пробовал и делал с помощью rnd:

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

<a onclick="navigator.app.loadUrl('https://google.com/', { openExternal:true });">Link</a>

Здесь я получаю сообщение об ошибке, что навигатор не найден, и ссылки продолжают открываться внутри приложения.

Затем я следую некоторым идеям из здесь:

<access origin="http://alunny.github.com" browserOnly="true" />

В этом случае browserOnly изменяется, когда я создаю его с помощью Cordova, и тогда, очевидно, изменения не происходит.

Затем я нашел еще один способ использования функции JS:

<script type="text/javascript">
           $('a[target=_blank]').on('click', function(e) {
           e.preventDefault();
           window.open($(this).attr('href'), '_system');
           return false;
       }); 
    </script>

Здесь тоже ничего не происходит.

Я должен упомянуть, что большинство из них - прошлогодние ответы, и ни в одном из них не упоминается Cordova 3.5.0-0.2.6.

Поэтому я начинаю эту тему для этой конкретной версии, я был бы очень признателен за помощь. Я тестирую телефон Moto G под управлением Android 4.4.4.


person allwynmasc    schedule 29.09.2014    source источник


Ответы (2)


Ответ, принятый в ссылке, предоставленной sagar, является решением. Я попробовал motog под управлением Android 4.4, и он работает нормально. Добавил это окно. "nofollow">http://www.google.de', '_system'); и установил плагин браузера inapp в каталог проекта.

Моя версия Cordova 3.4, но я думаю, что это не должно иметь значения.

Ссылка, по которой я перешёл http://community.phonegap.com/nitobi/topics/open_external_links_in_system_browser_phonegap_build_3_1_iphone_android_windows_

Опубликовал образец тестового проекта, который я создал на основе нужного вам примера https://gist.github.com/rahulinaction/f5d347ea9c74a941273e

person rahulinaction    schedule 29.09.2014
comment
я попробовал это. Браузер открывается, но не как отдельное приложение, а в самом моем приложении, так что пользователю приходится нажимать на браузер, а затем возвращаться к приложению, что не является обычным потоком. URL-адрес должен открываться в браузере как отдельное приложение, и мое приложение должно быть доступно. Надеюсь, я понятно объясняю. Как это на самом деле сработало для вас? Я все равно попробую ссылку на телефонный звонок, которой вы поделились, похоже, это новый подход. Спасибо. - person allwynmasc; 30.09.2014
comment
Я попробовал ответ по ссылке. Мой файл config.xml автоматически сбрасывается, и все, что я добавляю, удаляется, поэтому никакие изменения не вступают в силу. Конфигурация, которую я отредактировал, находится внутри корня, а не в первом каталоге. Какой из них на самом деле редактировать? - person allwynmasc; 30.09.2014
comment
Файл config.xml находится рядом с проектом, который вы создали из командной строки. Не редактируйте символический файл config.xml. - person rahulinaction; 30.09.2014
comment
что такое символическая ссылка config.xml? Тот, что внутри в корне? - person allwynmasc; 04.10.2014
comment
я заставил это работать, написав код: $('a').on(click,function(event){ event.preventDefault(); var anchor = $(this); var value = anchor.attr(href); window.open(значение, '_system'); }); вне функции onDeviceReady, но внутри документ готов! - person allwynmasc; 05.10.2014

Вот простая демонстрация:

<h1 onclick="window.open('yourWebsiteAddress')">HELLO THERE EVERYONE</h1>

Также вам нужно добавить плагин Cordova:org.apache.cordova.inappbrowser

Используйте эту ссылку.

person Sagar Devanga    schedule 29.09.2014
comment
Я пробовал это. Кроме того, в этой ссылке упоминается, что мне нужно установить плагин inappbrowser, который отсутствует в вашем ответе. Как вы это сделали? - person allwynmasc; 29.09.2014
comment
ссылка - ваш ответ, я только что дал вам демо - person Sagar Devanga; 29.09.2014
comment
Вы уверены, что в URL-адресе плагина есть ядро? В ссылке его нет. Это ты пробовал? И это не работает, когда я примерял Moto G. - person allwynmasc; 29.09.2014
comment
@Gallwynmasc видит его редактирование, где он удалил ядро ​​​​из URL-адреса плагина. Он должен работать. - person HischT; 30.09.2014
comment
@HischT Я уже пробовал этот метод. Это не сработало так, как нужно. Как я упоминал в комментарии ниже. Браузер открывается, но не как отдельное приложение, а в самом моем приложении, так что пользователю приходится нажимать на браузер, а затем возвращаться к приложению, что не является обычным потоком. URL-адрес должен открываться в браузере как отдельное приложение, и мое приложение должно быть доступно. Надеюсь, я понятно объясняю. Как это на самом деле сработало для вас? Я все равно попробую ссылку на телефонный звонок, которой вы поделились, похоже, это новый подход. - person allwynmasc; 02.10.2014