Comment créer un écran hors ligne en Vue 3, Angular 14 ou React
Dans ce tutoriel, nous allons apprendre à créer un écran hors ligne dans les applications Vue 3, Angular 14 et React en utilisant le Réseau API. Le Réseau API fournit des informations sur le réseau et la connectivité, nous permettant de gérer les scénarios hors ligne et d'offrir une meilleure expérience utilisateur. Pour des vérifications de disponibilité plus approfondies au-delà d'un simple drapeau en ligne/hors ligne, @capgo/capacitor-diagnostics-de-réseau peut tester la reachabilité d'URL, les ports TCP et les poignées de WebSocket à partir du code natif.
Prérequis
Avant de commencer, assurez-vous d'avoir installé les éléments suivants :
- Node.js (version 14 ou supérieure)
- Vue CLI
- Angular CLI
- Create React App
Configuration du projet
Tout d’abord, créons un nouveau projet en utilisant l’outil de mise en forme approprié pour chaque framework.
Vue 3
Ouvrez votre terminal et exécutez la commande suivante pour créer un nouveau projet Vue 3 :
vue create offline-screen-vue3
Choisissez le préfixe par défaut et attendez que le projet soit créé.
Angular 14
Ouvrez votre terminal et exécutez la commande suivante pour créer un nouveau projet Angular 14 :
ng new offline-screen-angular14
Suivez les invites, et lorsque vous êtes interrogé sur des fonctionnalités supplémentaires, sélectionnez « Routing » en appuyant sur la touche « espace » Suivez les invites, et lorsque vous êtes interrogé sur des fonctionnalités supplémentaires, sélectionnez « Routing » en appuyant sur la touche « espace » Attendez que le projet soit créé.
React
Ouvrez votre terminal et exécutez la commande suivante pour créer un nouveau projet React :
npx create-react-app offline-screen-react
Attendez que le projet soit créé.
L'installation du réseau API
Maintenant, installons le @capacitor/network package, qui fournit le réseau API.
Ouvrez votre terminal et naviguez dans votre répertoire de projet. Ensuite, exécutez la commande suivante pour installer le package :
npm install @capacitor/network
Pour les projets Capacitor , exécutez également la commande suivante pour synchroniser les fichiers de projet natifs :
npx cap sync
Assurez-vous d'avoir le Capacitor CLI installé globalement en exécutant :
npm install -g @capacitor/cli
Mettre en œuvre l'écran hors ligne
La prochaine étape consiste à mettre en œuvre la fonctionnalité de l'écran hors ligne dans chaque framework. Nous afficherons un message simple lorsque l'utilisateur se déconnecte.
Vue 3
Dans votre projet Vue 3, ouvrez le fichier src/main.js et importez le module depuis Network Dans votre template d'application ( @capacitor/network:
import { createApp } from 'vue';
import { Network } from '@capacitor/network';
const app = createApp(App);
// Your application setup
app.mount('#app');
Network.addListener('networkStatusChange', status => {
if (status.connected) {
// User is back online
// Hide the offline screen
document.getElementById('offline-screen').style.display = 'none';
} else {
// User is offline
// Display the offline screen
document.getElementById('offline-screen').style.display = 'block';
}
});
const logCurrentNetworkStatus = async () => {
const status = await Network.getStatus();
console.log('Network status:', status);
};
), ajoutez un élément avec un id de App.vuepour afficher le message d'écran hors ligne : <div> Maintenant, lorsque l'utilisateur se déconnecte, l'écran hors ligne sera affiché. Lorsque l'utilisateur revient en ligne, l'écran hors ligne sera caché. offline-screen Angular 14
<template>
<div id="app">
<div id="offline-screen">
<h1>You are offline</h1>
<p>Please check your internet connection and try again.</p>
</div>
<!-- Your application content -->
</div>
</template>
<style>
#offline-screen {
display: none;
text-align: center;
padding: 20px;
background-color: #f2f2f2;
}
#offline-screen h1 {
font-size: 24px;
}
#offline-screen p {
font-size: 16px;
}
</style>
Dans votre projet Angular 14, ouvrez le fichier
et importez le module depuis
Dans votre template d'application ( src/app/app.component.ts ), ajoutez un élément avec un id de Network module depuis @capacitor/network:
import { Component } from '@angular/core';
import { Network } from '@capacitor/network';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
constructor() {
Network.addListener('networkStatusChange', status => {
if (status.connected) {
// User is back online
// Hide the offline screen
document.getElementById('offline-screen').style.display = 'none';
} else {
// User is offline
// Display the offline screen
document.getElementById('offline-screen').style.display = 'block';
}
});
}
logCurrentNetworkStatus = async () => {
const status = await Network.getStatus();
console.log('Network status:', status);
};
}
Dans votre modèle d'application (app.component.html), ajoutez un <div> élément avec un id de offline-screen pour afficher le message d'écran hors ligne :
<div id="offline-screen">
<h1>You are offline</h1>
<p>Please check your internet connection and try again.</p>
</div>
<!-- Your application content -->
Ajoutez les styles suivants au app.component.css fichier :
#offline-screen {
display: none;
text-align: center;
padding: 20px;
background-color: #f2f2f2;
}
#offline-screen h1 {
font-size: 24px;
}
#offline-screen p {
font-size: 16px;
}
Maintenant, lorsque l'utilisateur se déconnecte, l'écran hors ligne sera affiché. Lorsque l'utilisateur revient en ligne, l'écran hors ligne sera caché.
React
Dans votre projet React, ouvrez le src/App.js fichier et importez le Network module depuis @capacitor/network:
import React, { useEffect } from 'react'
import { Network } from '@capacitor/network'
function App() {
useEffect(() => {
Network.addListener('networkStatusChange', (status) => {
if (status.connected) {
// User is back online
// Hide the offline screen
document.getElementById('offline-screen').style.display = 'none'
}
else {
// User is offline
// Display the offline screen
document.getElementById('offline-screen').style.display = 'block'
}
})
}, [])
const logCurrentNetworkStatus = async () => {
const status = await Network.getStatus()
console.log('Network status:', status)
}
return (
<div id="app">
<div id='offline-screen'>
<h1>You are offline</h1>
<p>Please check your internet connection and try again.</p>
</div>
{/* Your application content */}
</div>
)
}
export default App
Ajoutez les styles suivants au App.css fichier :
#offline-screen {
display: none;
text-align: center;
padding: 20px;
background-color: #f2f2f2;
}
#offline-screen h1 {
font-size: 24px;
}
#offline-screen p {
font-size: 16px;
}
Maintenant, lorsque l'utilisateur se déconnecte, l'écran hors ligne sera affiché. Lorsque l'utilisateur revient en ligne, l'écran hors ligne sera masqué.
Méthodes et interfaces de soutien
Le réseau API fournit plusieurs méthodes et interfaces pour vous aider à gérer la connexion réseau. Voici quelques-unes des principales :
getStatus(): Demandez l'état actuel de la connexion réseau.addListener('networkStatusChange', ...): Écoutez les changements dans la connexion réseau.
Continuez de l'écran hors ligne dans Vue, Angular, React avec Capacitor
Si vous utilisez L'écran hors ligne dans Vue, Angular, React avec Capacitor pour planifier des médias et des comportements d'interface natifs, connectez-le avec En utilisant @capgo/capacitor-live-activities pour la capacité native dans l'utilisation de @capgo/capacitor-live-activités, @capgo/capacitor-live-activités pour le détail d'implémentation dans @capgo/capacitor-live-activités, En utilisant @capgo/capacitor-video-joueur pour la capacité native dans l'utilisation de @capgo/capacitor-video-joueur, @capgo/capacitor-video-joueur pour le détail d'implémentation dans @capgo/capacitor-video-joueur, et En utilisant @capgo/capacitor-navigation-native pour la capacité native dans l'utilisation de @capgo/capacitor-navigation-native.