Saltar al contenido principal
@capgo/capacitor-native-loader UI y Sistema Código abierto

Cargador nativo plugin Capacitor

Muestra loaders animados nativos, overlays transparentes, assets de Lottie y estados de carga que redimensionan la WebView desde JavaScript o code nativo

Instalar

bun add @capgo/capacitor-native-loader bunx cap sync
npm, pnpm o yarn
  • npm install @capgo/capacitor-native-loader
  • pnpm add @capgo/capacitor-native-loader
  • yarn add @capgo/capacitor-native-loader

Guía

Cómo usar Native Loader en Capacitor

Usando @capgo/capacitor-native-loader

@capgo/capacitor-native-loader renderiza estados de carga mediante vistas nativas de iOS y Android. Úsalo cuando un loader debe mantenerse fluido mientras el WebView está ocupado, cuando los efectos a pantalla completa transparentes son costosos en CSS, o cuando otro plugin nativo necesita mostrar UI de carga antes de que JavaScript esté listo.

Instalar

npm install @capgo/capacitor-native-loader
npx cap sync

Native Loader a pantalla completa

import { NativeLoader } from '@capgo/capacitor-native-loader';

const { id } = await NativeLoader.show({
  style: 'siri',
  placement: 'fullscreen',
  message: 'Preparing your session',
  colors: ['#71f6ff', '#8b5cf6', '#ff4ecd', '#fff7ad'],
  scrimColor: 'rgba(3, 7, 18, 0.42)',
  interactionMode: 'block',
});

await initializeAppData();
await NativeLoader.hide({ id });

Edge Loader con redimensionado de WebView

await NativeLoader.setWebViewLayout({
  mode: 'inset',
  insets: { top: 96 },
  animated: true,
});

await NativeLoader.show({
  style: 'wave',
  placement: 'top',
  message: 'Syncing changes',
  interactionMode: 'passThrough',
});

Al terminar la carga, restaura el WebView:

await NativeLoader.hideAll({ restoreWebView: true });

Barra de progreso superior estilo Chrome

Usa el loader nativo superior para tener una barra de progreso tipo navegador sobre el WebView sin forzar animaciones CSS durante procesos pesados.

const { id } = await NativeLoader.show({
  style: 'chrome',
  placement: 'top',
  colors: ['#4285f4', '#34a853', '#fbbc05', '#ea4335'],
  thickness: 4,
  interactionMode: 'passThrough',
  webView: {
    mode: 'resize',
    insets: { top: 12 },
    restoreOnHide: true,
  },
});

await NativeLoader.hide({ id, restoreWebView: true });

Siri V2 Edge Loader

Usa siri-v2 para un loader nativo a pantalla completa que desplaza color por el borde mientras el WebView sigue visible.

const { id } = await NativeLoader.show({
  style: 'siri-v2',
  placement: 'fullscreen',
  colors: ['#71f6ff', '#8b5cf6', '#ff4ecd', '#fff7ad'],
  thickness: 10,
  scrimColor: 'rgba(3, 7, 18, 0.10)',
  interactionMode: 'passThrough',
});

await NativeLoader.hide({ id });

Lottie Loader

await NativeLoader.show({
  style: 'lottie',
  placement: 'center',
  asset: {
    type: 'lottie',
    source: 'loader.json',
    loop: true,
  },
});

Los assets empaquetados son ideales para loaders de inicio, ya que están disponibles antes de las peticiones de red y la inicialización de JavaScript.

Llamadas a plugins nativos

El plugin expone APIs nativas públicas para que otro plugin pueda mostrar u ocultar loaders directamente.

Swift:

import CapgoCapacitorNativeLoader

let id = NativeLoader.shared.show(options: [
  "style": "orbit",
  "placement": "fullscreen",
  "message": "Opening secure session"
])

NativeLoader.shared.hide(id: id)

Kotlin:

import app.capgo.nativeloader.NativeLoader

val id = NativeLoader.show(
  activity = activity,
  options = mapOf(
    "style" to "orbit",
    "placement" to "fullscreen",
    "message" to "Loading profile",
  ),
  webView = bridge.webView,
)

NativeLoader.hide(id)

Continúa con el uso de @capgo/capacitor-native-loader

Si estás usando Usando @capgo/capacitor-native-loader para planificar el comportamiento de los medios nativos y la interfaz, conéctalo con @capgo/capacitor-native-loader para detalles de implementación, Primeros pasos for setup, Uso de @capgo/capacitor-native-navigation para la interfaz nativa y el layout de WebView, y Uso de @capgo/capacitor-transitions para la animación de rutas en WebView.

FAQ

FAQ del plugin Native Loader

¿Cómo instalo el plugin Native Loader en una app de Capacitor?

Ejecuta "bun add @capgo/capacitor-native-loader" (o "npm install @capgo/capacitor-native-loader"), luego ejecuta "bunx cap sync" para que los proyectos de iOS y Android detecten el code nativo. Impórtalo desde "@capgo/capacitor-native-loader" en el code de tu app.

¿Funciona @capgo/capacitor-native-loader con React, Vue y Angular?

Sí. Native Loader es un paquete Capacitor, así que funciona con cualquier framework web que se ejecute dentro de Capacitor, incluidos Ionic, React, Vue, Angular, Svelte y JavaScript puro.

¿Qué versión de Capacitor soporta @capgo/capacitor-native-loader?

Los plugins de Capgo siguen la versión mayor de Capacitor: usa la versión mayor del plugin que coincida con la versión mayor de tu Capacitor (por ejemplo, el plugin v8 con Capacitor 8). La tabla de compatibilidad del README de GitHub lista las versiones mantenidas.

¿Es @capgo/capacitor-native-loader gratuito y de código abierto?

Sí. El código fuente de code es público en GitHub: https://github.com/Cap-go/capacitor-native-loader/ y el paquete se puede instalar gratis desde npm. Los reportes de bugs y pull requests son bienvenidos.

¿Puedo actualizar code que usa Native Loader sin pasar por la revisión de la App Store?

Instalar o actualizar el plugin cambia el code nativo, así que requiere un nuevo build para la tienda. Después, los cambios de JavaScript, HTML y CSS que llamen al plugin se pueden publicar al instante con las live updates de Capgo.

Publica cambios en Native Loader sin esperar la revisión de la app

Una vez que el plugin esté en tu store build, Capgo live updates envía tus cambios de JavaScript, HTML y CSS a los usuarios en minutos.

Empieza con Capgo