1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/i3ncto-cordova-plugin-network-information

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Информация о сети

Получение информации о беспроводном подключении.


cordova-plugin-network-information

Этот плагин представляет собой реализацию старой версии API информации о сети (Network Information API). Он предоставляет информацию об устройстве:

  • о сотовой и Wi-Fi связи;
  • о том, есть ли у устройства подключение к интернету.

Чтобы получить представление о том, как использовать плагин, ознакомьтесь с примером внизу этой страницы или перейдите прямо к справочному разделу.

Сообщайте о проблемах с этим плагином в системе отслеживания проблем Apache Cordova.

Справочная информация

Установка

cordova plugin add cordova-plugin-network-information

Поддерживаемые платформы

— Amazon Fire OS;
— Android;
— BlackBerry 10;
— Browser;
— iOS;
— Windows Phone 7 и 8;
— Tizen;
— Windows;
— Firefox OS.

Соединение

Объект connection, предоставляемый через navigator.connection, содержит информацию о сотовой и Wi-Fi соединении устройства.

Свойства

  • connection.type.

Константы

  • Connection.UNKNOWN;
  • Connection.ETHERNET;
  • Connection.WIFI;
  • Connection.CELL_2G;
  • Connection.CELL_3G;
  • Connection.CELL_4G;
  • Connection.CELL;
  • Connection.NONE.

connection.type

Это свойство позволяет быстро определить состояние сетевого соединения устройства и тип подключения.

Быстрый пример

function checkConnection() {
    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]);
}

checkConnection();

Изменение API

До Cordova 2.3.0 объект Connection был доступен через navigator.network.connection, после чего он был изменён на navigator.connection в соответствии со спецификацией W3C. Он всё ещё доступен по своему первоначальному местоположению, но устарел и в конечном итоге будет удалён.

Особенности iOS

  • На iOS 7 невозможно определить тип сотовой сети.
    navigator.connection.type устанавливается в значение Connection.CELL для всех данных сотовой связи.

Особенности Windows Phone

  • При работе в эмуляторе всегда определяет navigator.connection.type как Connection.UNKNOWN.
  • Windows Phone не может определить тип сотового сетевого подключения.
    navigator.connection.type устанавливается в значение Connection.CELL для всех сотовых данных.

Особенности Windows

  • При запуске в эмуляторе Phone 8.1 всегда определяет navigator.connection.type как Connection.ETHERNET.

Особенности Tizen

  • Tizen может обнаруживать только Wi-Fi или сотовую связь. Навигатор. Соединение. Тип установлен на Connection.CELL_2G для всех сотовых данных.

Особенности Firefox OS

  • Firefox OS не может определить тип подключения к сотовой сети.
    • Навигатор. Соединение. Тип устанавливается на Connection.CELL для всех сотовых данных.

Особенности браузера

  • Браузер не может определить тип сетевого подключения. Навигатор. Соединение. Тип всегда устанавливается на CONNECTION.UNKNOWN при подключении к сети.

События, связанные с сетью

offline

Событие срабатывает, когда приложение переходит в автономный режим, и устройство не подключено к интернету.

document.addEventListener("offline", yourCallbackFunction, false);

Детали

Событие offline срабатывает, когда ранее подключённое устройство теряет сетевое подключение, так что приложение больше не может получить доступ к интернету. Оно опирается на ту же информацию, что и API соединения, и срабатывает, когда значение connection.type становится NONE.

Приложения обычно должны использовать document.addEventListener для присоединения прослушивателя событий после срабатывания события deviceready.

Быстрый пример

document.addEventListener("offline", onOffline, false);

function onOffline() {
    // Обрабатываем событие offline
}

Особенности iOS

Во время первоначального запуска первое событие offline (если применимо) срабатывает не менее чем через секунду.

Особенности Windows Phone 7

При работе в эмуляторе connection.status всегда неизвестен, поэтому это событие не срабатывает.

Особенности Windows Phone 8

Эмулятор сообщает о типе соединения как Cellular, который не меняется, поэтому событие не срабатывает.

online

Это событие срабатывает, когда приложение выходит в онлайн, и устройство подключается к интернету.

document.addEventListener("online", yourCallbackFunction, false);

Детали

Событие online срабатывает, когда ранее неподключённое устройство получает сетевое соединение, чтобы разрешить приложению доступ к интернету. Оно полагается на ту же информацию, что и Connection API, и срабатывает при изменении connection.type с NONE на любое другое значение.

Приложения обычно должны использовать document.addEventListener для прикрепления прослушивателя событий после срабатывания события deviceready.

Быстрый пример

document.addEventListener("online", onOnline, false);

function onOnline() {
    // Обрабатываем событие online
}

Особенности iOS

Во время начального запуска первое событие online (если применимо) занимает не менее секунды, до этого connection.type — UNKNOWN.

Особенности Windows Phone 7

При работе в эмуляторе connection.status всегда неизвестен, поэтому это событие не срабатывает.

Особенности Windows Phone 8

Эмулятор сообщает о типе соединения как Cellular, который не меняется, поэтому событие не срабатывает.

Пример: загрузка файла в зависимости от состояния вашей сети

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

Для начала создайте новый объект FileEntry (data.txt), который будет использоваться для примера данных. Вызовите эту функцию из обработчика deviceready.

Примечание Для этого примера кода требуется плагин File.

var dataFileEntry;

function createSomeData() {

    window.requestFileSystem(window.TEMPORARY, 5 * 1024 * 1024, function (fs) {

        console.log('file system open: ' + fs.name);
        // Создаёт новый файл или возвращает существующий файл.
        fs.root.getFile("data.txt", { create: true, exclusive: false }, function (fileEntry) {

          dataFileEntry = fileEntry;

        }, onErrorCreateFile);

    }, onErrorLoadFs);
}

Затем добавьте прослушиватели для событий online и offline в обработчике deviceready.

document.addEventListener("offline", onOffline, false);
document.addEventListener("online", onOnline, false);

Функция app's onOnline обрабатывает событие online. В обработчике событий проверьте текущее состояние сети. В этом приложении любое соединение считается хорошим, кроме Connection.NONE. Если у вас есть соединение, вы пытаетесь загрузить файл. ``` networkState = navigator.connection.type;

if (networkState !== Connection.NONE) { if (dataFileEntry) { tryToUploadFile(); } } display('Тип соединения: ' + networkState);


При возникновении онлайн-события в предыдущем коде вызывается функция `tryToUploadFile` приложения.

Если функция загрузки объекта FileTransfer завершается неудачно, вызовите функцию `offlineWrite` приложения, чтобы сохранить текущие данные где-нибудь.

> *Примечание.* Для этого примера требуется плагин FileTransfer.

```js
function tryToUploadFile() {
    // !! Предполагается, что переменная fileURL содержит действительный URL текстового файла на устройстве,
    var fileURL = getDataFileEntry().toURL();

    var success = function (r) {
        console.log("Ответ = " + r.response);
        display("Загружено. Ответ: " + r.response);
    };

    var fail = function (error) {
        console.log("Произошла ошибка: код = " + error.code);
        offlineWrite("Не удалось загрузить: некоторые автономные данные");
    };

    var options = new FileUploadOptions();
    options.fileKey = "file";
    options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1);
    options.mimeType = "text/plain";

    var ft = new FileTransfer();
    // Убедитесь, что вы добавили домен вашего URL сервера в элемент <meta> элемента Content-Security-Policy в index.html.
    ft.upload(fileURL, encodeURI(SERVER), success, fail, options);
};

Вот код для функции offlineWrite.

Примечание. Этот пример кода требует плагин File.

function offlineWrite(offlineData) {
    // Создайте объект FileWriter для нашего FileEntry.
    dataFileEntry.createWriter(function (fileWriter) {

        fileWriter.onwriteend = function () {
            console.log("Успешная запись файла...");
            display(offlineData);
        };

        fileWriter.onerror = function (e) {
            console.log("Ошибка записи файла: " + e.toString());
        };

        fileWriter.write(offlineData);
    });
}

Если происходит автономное событие, просто сделайте что-то вроде уведомления пользователя (в этом примере просто зарегистрируйте его).

function onOffline() {
    // Обработайте автономное событие
    console.log("потеряно соединение");
}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Mirror of Apache Cordova Plugin network-information Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/i3ncto-cordova-plugin-network-information.git
git@api.gitlife.ru:oschina-mirror/i3ncto-cordova-plugin-network-information.git
oschina-mirror
i3ncto-cordova-plugin-network-information
i3ncto-cordova-plugin-network-information
master