Как проверить, есть ли доступное интернет-соединение в Electron Framework

Если ваш проект обеспечивает аутентификацию на сервере или получает ресурсы из Интернета, вы можете захотеть реализовать метод проверки, находится ли пользователь в сети или нет.

Без библиотеки

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

function isOnline(){
return navigator.onLine;
}

Неужели просто и функционально нет? Но мы можем сделать это лучше!

Украсьте функцию с помощью диалогов и «функции повтора», которая будет выполняться только при наличии активного соединения:

function isOnline(user_callback){
/**
* Show a warning to the user.
* You can retry in the dialog until a internet connection
* is active.
*/
var message = function(){
const {dialog} = require('electron').remote;
return dialog.showMessageBox({
title:"There's no internet",
message:"No internet available, do you want to try again?",
type:'warning',
buttons:["Try again please","I don't want to work anyway"],
defaultId: 0
},function(index){
// if clicked "Try again please"
if(index == 0){
execute();
}
})
};
var execute = function(){
if(navigator.onLine){
// Execute action if internet available.
user_callback();
}else{
// Show warning to user
// And "retry" to connect
message();
}
};
// Verify for first time
execute();
}
// Use it, the alert("Hello world"); will be executed only if there's an active internet connection.
isOnline(function(){
alert("Hello world !");
});

Подключение к Интернету отсутствует

Благодаря диалоговому модулю ваше приложение будет хорошо выглядеть, в то же время оно функционирует.

Тем не менее, есть некоторые случаи, когда по вашим условиям navigator.onLine может дать сбой, но почему? Чтобы правильно понять, почему это может произойти, вам нужно знать в соответствии с этим свойством, что значит быть онлайн.

Что на самом деле означает онлайн

Кажется, есть некоторая путаница в том, что значит быть онлайн. Учтите, что Интернет — это куча сетей, однако иногда вы используете VPN без доступа к Интернету в целом или всемирной паутине. Часто компании имеют свои собственные сети, которые имеют ограниченную возможность подключения к другим внешним сетям, поэтому вас можно считать «онлайн».

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

Если вы не можете использовать navigator.onLine, потому что вы используете VPN, то есть вам нужно будет сделать запрос к некоторому URL и в соответствии с результатом (кодом) запроса предоставить статус.

С библиотекой

Если вы хотите обеспечить лучший пользовательский опыт, вы можете использовать библиотеку, которая обрабатывает процесс для вас.

Offline.js

Offline.js это библиотека для автоматического оповещения ваших пользователей, когда они потеряли подключение к Интернету. Он захватывает запросы AJAX, которые были сделаны, когда соединение было разорвано, и переделывает их, когда оно восстанавливается, поэтому ваше приложение прекрасно реагирует.

Он имеет ряд красивых тем и не требует настройки.

Включите на свой сайт javascript, одну из тем и один из языков, и все готово! Чтобы использовать только JavaScript API без индикатора пользовательского интерфейса, просто пропустите файл CSS.

Если вы хотите узнать, как это выглядит на вашем сайте, отключите интернет или попробуйте симулятор на домашней странице. Посетите хранилище библиотеки в Github здесь.

Повеселись !

Ссылка на основную публикацию
Adblock
detector