1
votes

Obtenir l'état de la connexion Internet en Javascript

Je souhaite tester si l'utilisateur dispose d'une connexion Internet active.

Je sais que nous pouvons le faire avec navigator.Online, mais je ne pense pas que cela fonctionne lorsque l'utilisateur dispose d'un réseau WiFi limité.

J'ai besoin d'afficher une fenêtre contextuelle si l'utilisateur a été déconnecté / a un réseau WiFi limité


1 commentaires

Est-ce que cela répond à votre question? Détecter que la connexion Internet est hors ligne?


4 Réponses :


0
votes

Demandes XHR

Essayez de faire une demande XHR au même site Web lui-même (ou peut-être même quelques demandes XHR), et vérifiez si cela échoue, et si c'est le cas, vous pouvez en toute sécurité conclure que l'utilisateur ne dispose pas d'une connexion Internet active.


0 commentaires

0
votes

Vous pouvez utiliser ce package npm ng-connection-service après cela, vous pouvez facilement utiliser le code suivant dans le composant racine de votre application:

constructor (private connectionService: ConnectionService) {
        this.connectionService.monitor().subscribe((isConnected: boolean) => {
            if (!isConnected) {
                alert('oops you have no Internet connection');
            }
        });
}


0 commentaires

0
votes

vous pouvez créer une fonction comme celle-ci:

const isOnline = await checkConnection() === 'online';

Et l'utiliser comme ceci:

const checkConnection = () => fetch('https://google.com')
        .then(response => {
            if (!response.ok) {
                throw new Error('HTTP status ' + response.status);
            }
            return response;
        })
        .then(response => 'online')
        .catch(error => 'offline');


0 commentaires

0
votes

Il existe une méthode native prise en charge presque partout :

window.addEventListener('online', () => {
    isOnline = true
})

window.addEventListener('offline', () => {
    isOnline = false
})


0 commentaires