Saltar al contenido principal

Inicio rápido para nativo

Pasa NetInfo desde tu app y los márgenes de área segura desde tu diseño. Funciona igual en Expo y en React Native sin Expo.

import NetInfo from '@react-native-community/netinfo';
import { SafeAreaProvider, useSafeAreaInsets } from 'react-native-safe-area-context';
import { OfflineDetector } from '@rogeriodocarmo/offline-detector-native';

function Root() {
const insets = useSafeAreaInsets();
return (
<OfflineDetector netInfo={NetInfo} insets={insets}>
<App />
</OfflineDetector>
);
}

export default function Main() {
return (
<SafeAreaProvider>
<Root />
</SafeAreaProvider>
);
}

Al abrir en línea no se muestra nada. Cuando la app se queda sin conexión, aparecen las tres piezas con "Sin internet". Cuando regresa, "Conexión restablecida" se muestra durante recoveryMs (4 segundos) y nunca al arrancar. La demo en vivo muestra la versión web del mismo comportamiento.

NetInfo se pasa, no se exige​

El paquete nunca importa @react-native-community/netinfo por su cuenta; así, Metro nunca lo trata como una dependencia que no instalaste. Pasa el módulo en la prop netInfo, como arriba.

Sin él se supone que la interfaz de red está activa y solo la sonda de alcance decide, lo que tarda más en notar que te quedaste sin conexión. Las builds de desarrollo registran un aviso. Para tener control total, pasa tu propio adapter (consulta createNativeAdapter en la referencia nativa).

Márgenes de área segura​

Pasa insets desde useSafeAreaInsets(). El valor por defecto es la altura de la barra de estado de Android arriba y cero en los demás lados. Eso es incorrecto en iPhones con notch; por eso pasa los márgenes allí.

Volver a comprobar al regresar​

Reintentar siempre muestra "Verificando…" al instante. Una nueva comprobación en segundo plano al volver a la app solo la muestra cuando una pantalla lo activa:

import { useRecheckOnReturn } from '@rogeriodocarmo/offline-detector-native';

function Checkout() {
useRecheckOnReturn({ checkingFeedback: 'brief' });
return <Pay />;
}

El paquete nativo reexporta los hooks de la capa React, así que es el único paquete que hay que instalar y desde el que importar. Consulta Comprobar al volver.

No verificado en un dispositivo​

El comportamiento está cubierto por pruebas de integración de Jest con el paquete React real. Los flujos en dispositivo o emulador (Maestro) pertenecen a la app de demostración en Expo y no se ejecutaron para esta versión de la documentación.