J'utilise Angular 4 pour le développement de mes applications. Je dois vérifier si la connexion réseau est disponible pour avoir un problème de connexion utilisant Angular pour. Est-ce possible avec Angular 4.
J'ai vérifié avec https://github.com/HubSpot/offline
. Je pense que cela ne fonctionnera pas pour angular 4. N'importe qui s'il vous plaît suggérer. Est-il possible d'utiliser offlinejs pour Angular 4 ou toute autre alternative?
Merci Sarath C M
Vous ne devez utiliser aucune bibliothèque pour cela, vous pouvez utilisernavigator
objet global comme window. Vous pouvez utiliser dans angular4
public onlineOffline: boolean = navigator.onLine;
Pour la tâche requise, il existe un package npm, ng-connection-service. Ci-dessous le code complet:
import { Component,OnInit } from '@angular/core';
import { ConnectionService } from 'ng-connection-service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'internet-connection-check';
status = 'ONLINE'; //initializing as online by default
isConnected = true;
constructor(private connectionService:ConnectionService){
this.connectionService.monitor().subscribe(isConnected => {
this.isConnected = isConnected;
if(this.isConnected){
this.status = "ONLINE";
} else {
this.status = "OFFLINE"
}
alert(this.status);
});
}
ngOnInit(){
}
}
Vous pouvez aussi trouver le code de travail complet sur: cliquez ici
J'ai créé une classe appelée NetworkConnection
qui vérifie l'état de la connexion réseau. Voici un exemple de code
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
export enum ConnectionStatusEnum {
Online,
Offline
}
export class NetworkConnection {
public static status: ConnectionStatusEnum = ConnectionStatusEnum.Online;
private static online$: Observable<string>;
private static offline$: Observable<string>;
public static init() {
NetworkConnection.online$ = Observable.fromEvent(window, 'online');
NetworkConnection.offline$ = Observable.fromEvent(window, 'offline');
NetworkConnection.online$.subscribe(e => {
console.log('Online');
NetworkConnection.status = ConnectionStatusEnum.Online;
});
NetworkConnection.offline$.subscribe(e => {
console.log('Offline');
NetworkConnection.status = ConnectionStatusEnum.Offline;
});
}
constructor() {
NetworkConnection.init();
}
}
new NetworkConnection();
Et vous pouvez l'utiliser comme
import { NetworkConnection, ConnectionStatusEnum } from './ConnectionStatus';
....
if(NetworkConnection.status == ConnectionStatusEnum.Offline) {
// do something
}
....
En outre, si vous souhaitez vérifier la connexion à Internet, vous pouvez régulièrement envoyer des requêtes ping à des sites tels que www.google.com
au lieu de online/offline
. OR combinaison des deux approches.