article illustration Cómo crear una pantalla sin conexión en aplicaciones Vue, Angular y React con la API de Network y Capacitor
Tutorial
Last update: June 21, 2022

Cómo crear una pantalla sin conexión en aplicaciones Vue, Angular y React con la API de Network y Capacitor

Aprenda cómo implementar una pantalla sin conexión en aplicaciones Vue, Angular o React utilizando la API de Network y Capacitor. Mejore la experiencia del usuario manejando eficazmente escenarios sin conexión.

Cómo crear una pantalla sin conexión en Vue 3, Angular 14 o React

En este tutorial, aprenderemos cómo crear una pantalla sin conexión en aplicaciones de Vue 3, Angular 14 y React utilizando la API de Red. La API de Red proporciona información de red y conectividad, permitiéndonos manejar escenarios sin conexión y proporcionar una mejor experiencia de usuario.

Requisitos previos

Antes de comenzar, asegúrate de tener instalado lo siguiente:

Configuración del proyecto

Primero, creemos un nuevo proyecto utilizando la herramienta de scaffolding respectiva para cada framework.

Vue 3

Abre tu terminal y ejecuta el siguiente comando para crear un nuevo proyecto de Vue 3:

Terminal window
vue create offline-screen-vue3

Elige el preset predeterminado y espera a que se cree el proyecto.

Angular 14

Abre tu terminal y ejecuta el siguiente comando para crear un nuevo proyecto de Angular 14:

Terminal window
ng new offline-screen-angular14

Sigue las indicaciones y cuando se te pregunte por características adicionales, selecciona “Routing” presionando la tecla espaciadora. Espera a que se cree el proyecto.

React

Abre tu terminal y ejecuta el siguiente comando para crear un nuevo proyecto de React:

Terminal window
npx create-react-app offline-screen-react

Espera a que se cree el proyecto.

Instalación de la API de Red

Ahora, instalemos el paquete @capacitor/network, que proporciona la API de Red.

Abre tu terminal y navega hasta el directorio de tu proyecto. Luego, ejecuta el siguiente comando para instalar el paquete:

Terminal window
npm install @capacitor/network

Para proyectos de Capacitor, también ejecuta el siguiente comando para sincronizar los archivos del proyecto nativo:

Terminal window
npx cap sync

Asegúrate de tener instalado globalmente el CLI de Capacitor ejecutando:

Terminal window
npm install -g @capacitor/cli

Implementación de la pantalla sin conexión

A continuación, implementaremos la funcionalidad de la pantalla sin conexión en cada framework. Mostraremos un mensaje simple cuando el usuario se quede sin conexión.

Vue 3

En tu proyecto de Vue 3, abre el archivo src/main.js e importa el módulo Network de @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);
};

En la plantilla de tu aplicación (App.vue), añade un elemento <div> con un id de offline-screen para mostrar el mensaje de pantalla sin conexión:

<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>

Ahora, cuando el usuario se quede sin conexión, se mostrará la pantalla sin conexión. Cuando el usuario vuelva a estar en línea, la pantalla sin conexión se ocultará.

Angular 14

En tu proyecto de Angular 14, abre el archivo src/app/app.component.ts e importa el módulo Network de @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);
};
}

En la plantilla de tu aplicación (app.component.html), añade un elemento <template> con un id de offline-screen para mostrar el mensaje de pantalla sin conexión:

<div id="offline-screen">
<h1>You are offline</h1>
<p>Please check your internet connection and try again.</p>
</div>
<!-- Your application content -->

Añade los siguientes estilos al archivo app.component.css:

#offline-screen {
display: none;
text-align: center;
padding: 20px;
background-color: #f2f2f2;
}
#offline-screen h1 {
font-size: 24px;
}
#offline-screen p {
font-size: 16px;
}

Ahora, cuando el usuario se quede sin conexión, se mostrará la pantalla sin conexión. Cuando el usuario vuelva a estar en línea, la pantalla sin conexión se ocultará.

React

En tu proyecto de React, abre el archivo src/App.js e importa el módulo Network de @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

Añade los siguientes estilos al archivo App.css:

#offline-screen {
display: none;
text-align: center;
padding: 20px;
background-color: #f2f2f2;
}
#offline-screen h1 {
font-size: 24px;
}
#offline-screen p {
font-size: 16px;
}

Ahora, cuando el usuario se quede sin conexión, se mostrará la pantalla sin conexión. Cuando el usuario vuelva a estar en línea, la pantalla sin conexión se ocultará.

Métodos e interfaces de soporte

La API de Red proporciona varios métodos e interfaces para ayudarte a manejar la conexión de red. Aquí están algunos de los principales:

Últimas noticias

Capgo te ofrece los mejores conocimientos que necesitas para crear una aplicación móvil verdaderamente profesional.