Каков наилучший способ определить, есть ли интернет-соединение или нет на моем мобильном устройстве через мое веб-приложение?
JQuery Mobile обнаружен, если есть подключение к Интернету
Ответ 1
Для этого нет необходимого кода - это часть API HTML5. Проверьте значение window.navigator.onLine
- оно будет false
, если пользователь отключен.
http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#browser-state
Ответ 2
Опция может быть изменить настройки Ajax для добавления определенного timeout
, а затем добавить обработчик error
, который ищет textStatus
(второй аргумент) 'timeout'
.
Когда происходит тайм-аут, либо интернет-соединение является пятнистым, либо ваш сайт не работает.
Используя ajaxSetup для установки параметров по умолчанию для всех запросов:
$.ajaxSetup({
timeout: 1, // Microseconds, for the laughs. Guaranteed timeout.
error: function(request, status, maybe_an_exception_object) {
if(status != 'timeout')
alert("YOU BROKE IT");
else
alert("OH NOES TEH INTARWEBS ARE DOWN!!!!!1one");
}
});
Ответ 3
в простом JS-коде, это может быть сделано, причинно-следственная связь. Все признанные устройства не поддерживаются JS однако для веб-приложения это очень минимальный код для использования
online = window.navigator.onLine;
if (navigator.onLine) {
alert('you are online');
} else {
alert('you are offline');
}
Ответ 4
если вы хотите проверить каждые X секунд соединения.
$(document).ready(function() {
setInterval(function(){
var isOnline = navigator.onLine;
if (isOnline) {
console.log("Connected");
}
else {
console.log("Not Connected");
}
}, 30000); // 10000 = 10 seconds, check for connection every 30 seconds
});
Ответ 5
Если вы хотите что-то с большей совместимостью, надежностью и настраиваемостью, чем window.navigator.onLine, попробуйте мой плагин jQuery: http://tomriley.net/blog/archives/111