Iniziare
-
Installa il pacchetto
Terminal window npm i @capgo/capacitor-navigation-barTerminal window pnpm add @capgo/capacitor-navigation-barTerminal window yarn add @capgo/capacitor-navigation-barTerminal window bun add @capgo/capacitor-navigation-bar -
Sincronizzazione con progetti nativi
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync -
Configura il plugin
Imposta il colore della barra di navigazione:
import { NavigationBar } from '@capgo/capacitor-navigation-bar';// Set navigation bar colorawait NavigationBar.setColor({color: '#FF0000', // Red colordarkButtons: false // Use light buttons});Supporto temi dinamici:
// Set color based on themeconst isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;await NavigationBar.setColor({color: isDarkMode ? '#000000' : '#FFFFFF',darkButtons: !isDarkMode});Requisiti minimi:
- Android 5.0 (API livello 21) o superiore
- Il plug-in funziona solo su dispositivi Android
Non è richiesta alcuna configurazione aggiuntiva in AndroidManifest.xml.
Questo plugin è solo Android. iOS non ha una barra di navigazione personalizzabile.
-
Utilizzo avanzato
import { NavigationBar } from '@capgo/capacitor-navigation-bar';export class ThemeService {// Set transparent navigation barasync setTransparent() {await NavigationBar.setColor({color: '#00000000', // TransparentdarkButtons: true});}// Match app themeasync matchAppTheme(primaryColor: string, isLight: boolean) {await NavigationBar.setColor({color: primaryColor,darkButtons: isLight});}// Get current navigation bar colorasync getCurrentColor() {const result = await NavigationBar.getColor();console.log('Current color:', result.color);return result.color;}// Reset to defaultasync resetToDefault() {await NavigationBar.setColor({color: '#000000',darkButtons: false});}} -
Integrazione con il ciclo di vita dell’app
import { App } from '@capacitor/app';import { NavigationBar } from '@capgo/capacitor-navigation-bar';// Update navigation bar on app state changesApp.addListener('appStateChange', async ({ isActive }) => {if (isActive) {// Restore your app's navigation bar colorawait NavigationBar.setColor({color: '#YourAppColor',darkButtons: true});}});// Handle theme changeswindow.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', async (e) => {await NavigationBar.setColor({color: e.matches ? '#121212' : '#FFFFFF',darkButtons: !e.matches});});
API Riferimento
Section titled “API Riferimento”Metodi
Section titled “Metodi”setColor(options: ColorOptions)
Section titled “setColor(options: ColorOptions)”Imposta il colore della barra di navigazione e lo stile dei pulsanti.
Parametri:
options: oggetto di configurazionecolor: stringa - Codice colore esadecimale (ad esempio, ‘#FF0000’)darkButtons: booleano - Utilizza pulsanti scuri (vero) o pulsanti chiari (falso)
Resi: Promise<void>
getColor()
Section titled “getColor()”Ottieni il colore corrente della barra di navigazione.
Resi: Promise<{ color: string }>
Interfacce
Section titled “Interfacce”interface ColorOptions { color: string; // Hex color code darkButtons: boolean; // Button style}
interface ColorResult { color: string; // Current hex color}Note sulla piattaforma
Section titled “Note sulla piattaforma”Android
Section titled “Android”- Richiede Android 5.0 (API livello 21) o successivo
- I cambiamenti di colore sono immediati
- Sono supportati i colori trasparenti (usa il canale alfa)
- La barra di navigazione potrebbe non essere visibile sui dispositivi con navigazione gestuale
- Questo plugin non ha effetto sui dispositivi iOS
- iOS non fornisce API per personalizzare la navigazione del sistema
Casi d’uso comuni
Section titled “Casi d’uso comuni”- Coerenza del marchio: abbina la barra di navigazione al colore principale della tua app
- Supporto temi: adatta dinamicamente ai temi chiari/scuri
- Esperienze coinvolgenti: utilizza la navigazione trasparente per i contenuti a schermo intero
- Indicazione stato: cambia colore per indicare gli stati dell’app (registrazione, errori, ecc.)
Migliori pratiche
Section titled “Migliori pratiche”-
Contrasto colore: garantisce un contrasto sufficiente tra la barra di navigazione e i pulsanti
// Good contrast examplessetColor({ color: '#FFFFFF', darkButtons: true }); // White bar, dark buttonssetColor({ color: '#000000', darkButtons: false }); // Black bar, light buttons -
Coerenza del tema: aggiorna la barra di navigazione quando il tema cambia
-
Accessibilità: considera gli utenti con problemi di vista nella scelta dei colori
-
Prestazioni: evita frequenti cambi di colore che potrebbero distrarre gli utenti
Risoluzione dei problemi
Section titled “Risoluzione dei problemi”La barra di navigazione non cambia:
- Verificare che sul dispositivo sia in esecuzione Android 5.0+
- Controlla se sul dispositivo è abilitata la navigazione gestuale
- Assicurati che il formato del colore sia esadecimale valido (ad esempio, “#FF0000”)
Pulsanti non visibili:
- Controlla che il parametro
darkButtonscorrisponda al colore dello sfondo - Gli sfondi chiari richiedono
darkButtons: true - Gli sfondi scuri richiedono
darkButtons: false
Il colore appare diverso:
- Alcune versioni Android potrebbero modificare leggermente il colore
- Utilizza colori completamente opachi per ottenere i migliori risultati