#javascript #android #jquery #jquery-mobile #cordova
#javascript #Android #jquery #jquery-мобильный #кордова
Вопрос:
В моем приложении phonegap я хочу проверить статус устройства онлайн / оффлайн.
Cordova version is 3.3
Android version 4.2.2
Jquery Mobile 1.3
Поэтому я использую следующие методы для обнаружения онлайн / оффлайн.
Способ 1:
document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady(){
connectionStatusOnline = navigator.onLine ? 'online' : 'offline';
alert(connectionStatusOnline);
}
он всегда возвращается в автономном режиме.
Способ 2:
document.addEventListener("online", toggleon, false);
document.addEventListener("offline", toggleoff, false);
function toggleon() {
alert("online");
}
function toggleoff() {
alert("offline");
}
в методе 2 он никогда не вызывает toogleon или toogleoff.
Способ 3:
function onDeviceReady() {
//document.addEventListener("offline", toggleCon, false);
var networkState = navigator.connection.type;
var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.CELL] = 'Cell generic connection';
states[Connection.NONE] = 'No network connection';
alert('Connection type: ' states[networkState]);
}
в методе 3 отображается неопределенное соединение
У меня есть все плагины config.xml and set all the permission in manifest
.
Комментарии:
1. Можете ли вы рассказать мне о своей структуре проекта (имеется в виду структура папок www).
2. @Arut файлы html находятся в папке www / html, а файлы js — это файлы www / js, а файлы css — www / css
3. хорошо, где cordova.js и cordova_pluins.js файлы..
4. @Arut внутри моих файлов www / js.
Ответ №1:
Кажется, ваш cordova.js и cordova_plugin.js файлы находятся внутри папки www/ js .. So the file API's are called in this staratergy
ТАКИМ образом, устройство не обнаруживает, что устройство находится в автономном режиме / онлайн. Я сталкивался с подобной проблемой раньше. То, что я скопировал cordova.js и cordova_pluins.js файлы в папку www .
Ваш project directory should be like www/cordova.js and www/cordova_plugins.js
Не www/js/cordova.js and www/js/cordova_plugin.js
Ответ №2:
Добавьте сетевой плагин через CLI… Ссылка
cordova plugin add org.apache.cordova.network-information
Затем
<script>
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady()
{
if(navigator.connection.type==0)
{
toggleoff();
}
else if(navigator.connection.type=='none')
{
toggleoff();
}
else
{
toggleon();
}
}
</script>