Ionic - перезагрузка не запущенного приложения на устройстве

Я не вижу свое ионное приложение на своем телефоне при использовании параметра --live-reload.

Я использую Windows 8.1 и подключенное Android-устройство Nexus 5. Приложение представляет собой пример приложения sidemenu, созданного с помощью ionic start demo sidemenu.


Когда я запускаю ionic run --live-reload, я сначала получаю список возможных IP-адресов:

Multiple addresses available.
Please select which address to use by entering its number from the list below:
Note that the emulator/device must be able to access the given IP address
 1) 192.168.0.109 (Wi-Fi)
 2) 192.168.159.1 (VMware Network Adapter VMnet1)
 3) 192.168.174.1 (VMware Network Adapter VMnet8)
 4) 192.168.56.1 (VirtualBox Host-Only Network)

Я выбираю вариант 1 - это IP-адрес моего ПК разработки, на котором размещается ионный сервер.


Ионный подтверждает этот выбор и подтверждает, что он обслуживает порты, как показано ниже:

Selected address: 192.168.0.109
Running live reload server: http://192.168.0.109:35729
Watching : [ 'www/**/*', '!www/lib/**/*' ]
Running dev server: http://192.168.0.109:8100

Я подтвердил, что он обслуживает страницу, открыв Chrome на моем ПК и перейдя на http://192.168.0.109:8100


Когда приложение запускается на устройстве Android, оно сначала отображает заставку, а затем показывает веб-просмотр с ошибкой:

Web page not available
The Web page at http://192.168.0.109:8100/ could not be loaded as:

net::ERR_ADDRESS_UNREACHABLE

Об этом также сообщается на форумах Ionic:


Насколько я могу судить, я открыл TCP-порты 35729 и 8100 на моей машине Windows (используя настройки панели управления - настройки брандмауэра).

Что мне настроить, чтобы я мог видеть свое приложение на моем устройстве?

Ответ 1

Приведенная выше конфигурация была правильной.

Порты должны быть открыты в брандмауэре Windows - но отсутствующий шаг требовал перезагрузки после обновления настроек брандмауэра.

После перезагрузки все работает правильно.

Ответ 2

Похоже, вы столкнулись с проблемой CORS.

Установить и настроить cordova-plugin-whitelist исправить вашу проблему

Ответ 3

Вероятно, это не проблема для большинства людей, но для меня это было потому, что я запускал VPN на своем телефоне.

Ответ 4

Легко, вы можете использовать эту команду в cmd, и это хорошо работает:

ionic serve --address 0.0.0.0

Ответ 5

Я опоздал на это, но мой config.xml создал следующую строку где-то в моем процессе сборки:

<content src="http://10.0.0.25:8100" original-src="index.html"/>

Я исправил его, изменив его на <content original-src="index.html"/> (без src="http://10.0.0.25:8100")

Ответ 6

Что сработало для меня (без каких-либо изменений в конфигурационных файлах проекта или настройках брандмауэра):

$ ionic cordova run android -c -l --address=10.0.0.2 (use your local IP address here)

Моя настройка:

  • Мой телефон Android (под управлением Android 7.1.1) подключен через USB-кабель к моему настольному компьютеру с Windows.
  • Используемый адрес является локальным IP-адресом для настольного компьютера, который я получил от www.whatismybrowser.com

Все команды, которые я использовал, чтобы запустить livereload на моем телефоне Android с новым проектом ionic 3:

$ ionic start testLivereloadProject1 tabs
$ cd testLivereloadProject1
$ ionic cordova platform add android
$ ionic cordova run android -c -l --address=10.0.0.2 

(-c - консоль, -l - прямая загрузка)

Примечание. Изначально загрузка в телефон была очень медленной (экран-заставка прошел, затем некоторое время он был полностью белым), но после загрузки функция livereload работала хорошо.

Ответ 7

Ни один из приведенных выше ответов не работал для меня, я проверил, к какой сети был подключен мой телефон и к какой сети был подключен мой ноутбук. Поскольку они были разными, я заставил их подключиться к одной сети, и это решило эту проблему.

Ответ 8

Проверьте свою версию CLI с ионной информацией.

Live-перезагрузка перестала работать для меня, как описано в OP, мне пришлось вернуться к 4.12.0, чтобы снова запустить его.