Comenzando
-
Instalar el paquete
Ventana de terminal npm i @Capgo/Capacitor-navigation-barVentana de terminal pnpm add @Capgo/Capacitor-navigation-barVentana de terminal yarn add @Capgo/Capacitor-navigation-barVentana de terminal bun add @Capgo/Capacitor-navigation-bar -
Sincronizar con proyectos nativos
Ventana de terminal npx cap syncVentana de terminal pnpm cap syncVentana de terminal yarn cap syncVentana de terminal bunx cap sync -
Configurar el Plugin
Establecer Color de Barra de Navegación:
import { NavigationBar } from '@capgo/capacitor-navigation-bar';// Establecer color de barra de navegaciónawait NavigationBar.setColor({color: '#FF0000', // Color rojodarkButtons: false // Usar botones claros});Soporte de Tema Dinámico:
// Establecer color basado en el temaconst isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;await NavigationBar.setColor({color: isDarkMode ? '#000000' : '#FFFFFF',darkButtons: !isDarkMode});Requisitos Mínimos:
- Android 5.0 (API nivel 21) o superior
- El Plugin solo funciona en dispositivos Android
No se requiere configuración adicional en AndroidManifest.XML.
Este Plugin es solo para Android. iOS no tiene una barra de navegación personalizable.
-
Uso avanzado
import { NavigationBar } from '@capgo/capacitor-navigation-bar';export class ThemeService {// Establecer barra de navegación transparenteasync setTransparent() {await NavigationBar.setColor({color: '#00000000', // TransparentedarkButtons: true});}// Coincidir con tema de aplicaciónasync matchAppTheme(primaryColor: string, isLight: boolean) {await NavigationBar.setColor({color: primaryColor,darkButtons: isLight});}// Obtener color actual de barra de navegaciónasync getCurrentColor() {const result = await NavigationBar.getColor();console.log('Current color:', result.color);return result.color;}// Restablecer a predeterminadoasync resetToDefault() {await NavigationBar.setColor({color: '#000000',darkButtons: false});}} -
Integración con ciclo de vida de la aplicación
import { App } from '@capacitor/app';import { NavigationBar } from '@capgo/capacitor-navigation-bar';// Actualizar barra de navegación en cambios de estado de aplicaciónApp.addListener('appStateChange', async ({ isActive }) => {if (isActive) {// Restaurar color de barra de navegación de tu aplicaciónawait NavigationBar.setColor({color: '#YourAppColor',darkButtons: true});}});// Manejar cambios de temawindow.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', async (e) => {await NavigationBar.setColor({color: e.matches ? '#121212' : '#FFFFFF',darkButtons: !e.matches});});
Referencia de API
Section titled “Referencia de API”Métodos
Section titled “Métodos”setColor(options: ColorOptions)
Section titled “setColor(options: ColorOptions)”Establece el color de la barra de navegación y el estilo de botones.
Parámetros:
options: Objeto de configuracióncolor: string - Código de color hexadecimal (ej., ‘#FF0000’)darkButtons: boolean - Usar botones oscuros (true) o botones claros (false)
Retorna: Promise<void>
getColor()
Section titled “getColor()”Obtiene el color actual de la barra de navegación.
Retorna: Promise<{ color: string }>
Interfaces
Section titled “Interfaces”interface ColorOptions { color: string; // Código de color hexadecimal darkButtons: boolean; // Estilo de botones}
interface ColorResult { color: string; // Color hexadecimal actual}Notas de Plataforma
Section titled “Notas de Plataforma”Android
Section titled “Android”- Requiere Android 5.0 (API nivel 21) o superior
- Los cambios de color son inmediatos
- Se soportan colores transparentes (usar canal alfa)
- La barra de navegación podría no ser visible en dispositivos con navegación por gestos
- Este Plugin no tiene efecto en dispositivos iOS
- iOS no proporciona APIs para personalizar la navegación del sistema
Casos de Uso Comunes
Section titled “Casos de Uso Comunes”- Consistencia de Marca: Coincidir barra de navegación con el color primario de tu aplicación
- Soporte de Tema: Adaptarse a temas claro/oscuro dinámicamente
- Experiencias Inmersivas: Usar navegación transparente para contenido de pantalla completa
- Indicación de Estado: Cambiar color para indicar estados de aplicación (grabación, errores, etc.)
Mejores Prácticas
Section titled “Mejores Prácticas”-
Contraste de Color: Asegurar suficiente contraste entre barra de navegación y botones
// Ejemplos de buen contrastesetColor({ color: '#FFFFFF', darkButtons: true }); // Barra blanca, botones oscurossetColor({ color: '#000000', darkButtons: false }); // Barra negra, botones claros -
Consistencia de Tema: Actualizar barra de navegación cuando cambie el tema
-
Accesibilidad: Considerar usuarios con discapacidades visuales al elegir colores
-
Rendimiento: Evitar cambios frecuentes de color que puedan distraer a los usuarios
Solución de Problemas
Section titled “Solución de Problemas”La barra de navegación no cambia:
- Verifica que el dispositivo esté ejecutando Android 5.0+
- Verifica si el dispositivo tiene navegación por gestos habilitada
- Asegúrate de que el formato de color sea hexadecimal válido (ej., ‘#FF0000’)
Botones no visibles:
- Verifica que el parámetro
darkButtonscoincida con tu color de fondo - Fondos claros necesitan
darkButtons: true - Fondos oscuros necesitan
darkButtons: false
El color aparece diferente:
- Algunas versiones de Android pueden modificar el color ligeramente
- Usa colores totalmente opacos para mejores resultados