Плагин InAppbrowser window.open для Cordova 3.5 не работает

Метод InAppBrowser .open() не работает в моем приложении. Использование Cordova 3.5 и плагина версии 0.4.1 из плагина InAppBrowser.

Пробовал данный пример:

var ref = window.open('http://apache.org', '_blank', 'location=yes');

Но не работает.

Если я создаю приложение с помощью Cordova, запускающего Android, приложение устанавливается на мое устройство, и ничего не происходит, когда я нажимаю ссылку с onclick, вызывающим приведенный выше код. То же самое с кордовой подачей и доступом через localhost: 8000 (локальный браузер).

Если я эмулирую через пульсацию (с эмуляцией пульсации), когда я захожу на страницу (localhost:4400/) и нажимаю на ссылку, страница перезагружается с содержимым: «Эмуляция InAppBrowser. Это похоже на браузер, только все это в вашем приложении.

URL: http://apache.org/
TARGET: _blank
OPTIONS: "location=yes"

У кого-нибудь есть идеи?


person Christian Benseler    schedule 06.06.2014    source источник


Ответы (3)


Обновлять:

Мы получали разные результаты, когда проект собирался на разных машинах. Мы обнаружили, что проблема была вызвана неотслеживаемым файлом:

[cordova project folder]/plugins/android.json (or other OS : ios.json)

Мы обнаружили, что на каждой машине был разный порядок плагинов. Когда мы начали отслеживать файл и исправили порядок плагинов, проблема исчезла. Вы можете удалить плагин на всех машинах, а затем добавить его снова.

Я не уверен, почему порядок имеет значение, вы могли бы подумать, что это не так, но это так.

Добавление файла, синхронизация репозиториев и перестроение устранили проблему.

Попробуйте использовать _system вместо _blank.

Оригинал:

Кроме того, для iOS мне пришлось использовать что-то вроде этого:

 <a onclick="window.open('http://google.ca', '_system')" >iOS</a>

Но на Android мне пришлось использовать:

<a onclick="navigator.app.loadUrl('http://google.com', {openExternal : true})" >Android</a>
person schoeffman    schedule 17.06.2014
comment
Что-то не так с вами обоими - код OP отлично работает для меня в iOS и Android как есть. Мой образец выглядит так: ‹button style=margin:1em;padding:1em;›‹a href=# onclick=window.open('play.google.com', '_blank', 'location=yes');›Наши приложения‹/a›‹/button› - person Steve; 22.06.2014
comment
@Steve Спасибо за ваш отзыв. Я протестировал ваш пример, используя Cordova 3.5 на Android 4.4.2 с плагином InAppBrowser 0.4.1. После добавления отсутствующего протокола URL и удаления посторонней точки с запятой у меня все еще не работало на Android. - person schoeffman; 23.06.2014

У меня тоже такая же проблема, я нашел решение:

    var ref=window.open(encodeURI(url), '_blank', 'location=no,closebuttoncaption=Main');
    ref.addEventListener('exit', function()

Используйте этот код, чтобы открыть URL-адрес. Он будет работать

person Harsh Mittal    schedule 08.01.2016

У меня была та же проблема, и я «исправил» ее, вызвав функцию Cordova напрямую:

cordova.exec(successFunction, errorFunction, "InAppBrowser", "open", ['http://apache.org', '_blank', 'location=yes']);

Надеюсь, это сработает для вас.

person Rocky    schedule 03.09.2014