2016-01-07 5 views
1

Я использую $cordovaNetwork, чтобы знать, когда мой проект подключен к сети, а когда нет. Я использую метод isOnline(), и он возвращает false. Но это не так, потому что я знаю, что я подключен, когда устройство готово. У меня есть информация, которую я поймаю из Интернета, загруженного в начале, поэтому у меня есть подключение к Интернету.

Когда мероприятие в режиме онлайн запущено? Когда $cordovaNetwork действительно знает, что приложение находится в режиме онлайн? Иногда это показывает мне, что есть связь (ИСТИНА), но иногда она показывает мне, что нет (FALSE).

Наконец, я использую это приложение, поэтому я изменил состояние, а затем $cordoaNetwork.isonline() возвращает мне FALSE, очень странно.

Может ли кто-нибудь мне помочь? Документация не очень обширна. И если вы можете, приведи пример, пожалуйста. Если вам нужна дополнительная информация, спросите меня.

благодаря

+2

вы можете показать некоторый код, пожалуйста, также, какое устройство вы используете приложение на .. это это работает на реальном устройстве или его просто смоделированный – bravokeyl

+0

Взгляните на этот вопрос: http://stackoverflow.com/questions/33878872/cordova-network-isonline-returns-true-only-on-wifi/33879169#33879169 – jcarrera

+0

У меня точно такая же проблема –

ответ

0

я сделал следующие шаги:

Открыть терминал и написать «использовать NVM v4.2.3», чтобы иметь правильную версию nodejs активных. Перейдите в папку проекта, в моем случае, «cd/var/phone/myProject» Напишите «ионный бегущий андроид». Подождите несколько секунд, пока приложение не закроется.

До сих пор у меня нет проблем. Приложение построено хорошо. Затем я использую $ cordovaNetwork для мониторинга состояния онлайн и оффлайн, когда он активен в данный момент. $ cordovaNetwork.isOnline() работает, но кажется, что иногда не знают, когда какое-либо государство действительно активно. Все время, когда я запускаю приложение, я знаю, что это связано, потому что часть кода находится на сервере, поэтому, если он не загружен, он будет пустым.

Так зная, что мероприятие в сети активно, почему $ cordovaNetwork.isOnline() не обнаруживает его? Я искал решение на других форумах, но, похоже, никто не сталкивался с этой проблемой.

И да, я эмулирую приложение, возможно, проблема в эмуляторе? Прежде чем использовать команду «ионный бег андроида», я должен открыть другой терминал и написать «андроид avd», чтобы открыть платформу Android для использования приложения. Я не тестировал его в телефоне.

Благодарим за помощь. И jcarrera, я вижу опубликованное вами сообщение, но мне нужно напрямую использовать $ cordovaNetwork, не используя navigator.connection.type, где навигатор используется, когда приложение работает через браузер. Во всяком случае, я это докажу, но я думаю, что это не так, как в этом post. Спасибо за вашу помощь

+0

У меня точно такая же проблема –

1

Если ваш navigator.connection.type является Connection.UNKNOWN, то $cordovaNetwork.isOnline() всегда возвращают false, даже если вы уже в Интернете.

Я думаю, что это ошибка ngCordova

ngCordova источник

isOnline: function() { 
    var networkState = navigator.connection.type; 
    return networkState !== Connection.UNKNOWN && networkState !== Connection.NONE; 
}, 

isOffline: function() { 
    var networkState = navigator.connection.type; 
    return networkState === Connection.UNKNOWN || networkState === Connection.NONE; 
}, 

Вам необходимо перезаписать isOnline и isOffline функцию.

перезапись в app.run разделе

$cordovaNetwork.isOnline = function() { 
    return navigator.connection.type !== Connection.NONE; 
}; 
$cordovaNetwork.isOffline = function() { 
    return navigator.connection.type === Connection.NONE; 
}; 

Я надеюсь на вашу помощь

+0

Спасибо за помощь. Я попробую ваше решение этой ночью. И я говорю вам, если у меня все еще есть проблема, спасибо – nmarmon

Смежные вопросы