Android-веб-браузер возвращает navigator.online true - PullRequest
0 голосов
/ 10 февраля 2019

В веб-представлении Android я каждые 10 секунд перепроверяю, если navigator.onLine возвращает true для получения новых данных или false для продолжения использования локальных данных.

Тем не менее, Android WebView всегда возвращает true для navigator.onLine.В браузере Chrome (на телефоне) тот же веб-сайт работает правильно и показывает правильный статус (true / false) в зависимости от соединения.

Я отлаживал его с помощью logcat, а также удаленного инспектора chrome.В удаленном инспекторе Chrome я могу вручную отключить соединение.У кого-то такая же проблема или какая-то идея для решения этой проблемы, кроме использования сетевого слушателя в Java (собственное приложение).

if (navigator.onLine) {
    // check if new data is available
    checkDataUpdate();
  } else {
    // OFFLINE - Mode
}

1 Ответ

0 голосов
/ 13 февраля 2019

У меня была та же проблема, и после попытки разных подходов я обнаружил, что у меня есть одно веб-свойство webView.setNetworkAvailable(true);

, которое было основной причиной возврата navigator.onLine всегда true.Просто найдите, что у вас есть вышеуказанный код, и закомментируйте это.После этого webView будет работать как браузер Chrome.

Из документа Android:

setNetworkAvailable

Добавлено на уровне API 3

void setNetworkAvailable (boolean networkUp)

Информирует WebView о состоянии сети.Это используется для установки свойства JavaScript window.navigator.isOnline и генерирует событие online / offline, как указано в HTML5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...