Erste Schritte
-
Paket installieren
Terminal-Fenster npm i @capgo/capacitor-navigation-barTerminal-Fenster pnpm add @capgo/capacitor-navigation-barTerminal-Fenster yarn add @capgo/capacitor-navigation-barTerminal-Fenster bun add @capgo/capacitor-navigation-bar -
Mit nativen Projekten synchronisieren
Terminal-Fenster npx cap syncTerminal-Fenster pnpm cap syncTerminal-Fenster yarn cap syncTerminal-Fenster bunx cap sync -
Plugin konfigurieren
Navigationsleistenfarbe festlegen:
import { NavigationBar } from '@capgo/capacitor-navigation-bar';// Navigationsleistenfarbe festlegenawait NavigationBar.setColor({color: '#FF0000', // Rote FarbedarkButtons: false // Helle Schaltflächen verwenden});Dynamische Theme-Unterstützung:
// Farbe basierend auf Theme festlegenconst isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;await NavigationBar.setColor({color: isDarkMode ? '#000000' : '#FFFFFF',darkButtons: !isDarkMode});Mindestanforderungen:
- Android 5.0 (API-Level 21) oder höher
- Das Plugin funktioniert nur auf Android-Geräten
Keine zusätzliche Einrichtung in AndroidManifest.xml erforderlich.
Dieses Plugin ist nur für Android. iOS hat keine anpassbare Navigationsleiste.
-
Erweiterte Verwendung
import { NavigationBar } from '@capgo/capacitor-navigation-bar';export class ThemeService {// Transparente Navigationsleiste festlegenasync setTransparent() {await NavigationBar.setColor({color: '#00000000', // TransparentdarkButtons: true});}// App-Theme anpassenasync matchAppTheme(primaryColor: string, isLight: boolean) {await NavigationBar.setColor({color: primaryColor,darkButtons: isLight});}// Aktuelle Navigationsleistenfarbe abrufenasync getCurrentColor() {const result = await NavigationBar.getColor();console.log('Aktuelle Farbe:', result.color);return result.color;}// Auf Standard zurücksetzenasync resetToDefault() {await NavigationBar.setColor({color: '#000000',darkButtons: false});}} -
Integration mit App-Lebenszyklus
import { App } from '@capacitor/app';import { NavigationBar } from '@capgo/capacitor-navigation-bar';// Navigationsleiste bei App-Statusänderungen aktualisierenApp.addListener('appStateChange', async ({ isActive }) => {if (isActive) {// Navigationsleistenfarbe Ihrer App wiederherstellenawait NavigationBar.setColor({color: '#IhreAppFarbe',darkButtons: true});}});// Theme-Änderungen behandelnwindow.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', async (e) => {await NavigationBar.setColor({color: e.matches ? '#121212' : '#FFFFFF',darkButtons: !e.matches});});
API-Referenz
Section titled “API-Referenz”Methoden
Section titled “Methoden”setColor(options: ColorOptions)
Section titled “setColor(options: ColorOptions)”Navigationsleistenfarbe und Schaltflächenstil festlegen.
Parameter:
options: Konfigurationsobjektcolor: string - Hex-Farbcode (z. B. ‘#FF0000’)darkButtons: boolean - Dunkle Schaltflächen (true) oder helle Schaltflächen (false) verwenden
Rückgabe: Promise<void>
getColor()
Section titled “getColor()”Aktuelle Navigationsleistenfarbe abrufen.
Rückgabe: Promise<{ color: string }>
Interfaces
Section titled “Interfaces”interface ColorOptions { color: string; // Hex-Farbcode darkButtons: boolean; // Schaltflächenstil}
interface ColorResult { color: string; // Aktueller Hex-Farbcode}Plattformhinweise
Section titled “Plattformhinweise”Android
Section titled “Android”- Erfordert Android 5.0 (API-Level 21) oder höher
- Farbänderungen erfolgen sofort
- Transparente Farben werden unterstützt (Alpha-Kanal verwenden)
- Die Navigationsleiste ist möglicherweise auf Geräten mit Gestennavigation nicht sichtbar
- Dieses Plugin hat keine Auswirkungen auf iOS-Geräte
- iOS bietet keine APIs zur Anpassung der Systemnavigation
Gängige Anwendungsfälle
Section titled “Gängige Anwendungsfälle”- Markenkonsistenz: Navigationsleiste an Primärfarbe Ihrer App anpassen
- Theme-Unterstützung: Dynamisch an helle/dunkle Themes anpassen
- Immersive Erlebnisse: Transparente Navigation für Vollbildinhalte verwenden
- Statusanzeige: Farbe ändern, um App-Zustände anzuzeigen (Aufnahme, Fehler usw.)
Best Practices
Section titled “Best Practices”-
Farbkontrast: Ausreichenden Kontrast zwischen Navigationsleiste und Schaltflächen sicherstellen
// Gute KontrastbeispielesetColor({ color: '#FFFFFF', darkButtons: true }); // Weiße Leiste, dunkle SchaltflächensetColor({ color: '#000000', darkButtons: false }); // Schwarze Leiste, helle Schaltflächen -
Theme-Konsistenz: Navigationsleiste aktualisieren, wenn sich das Theme ändert
-
Barrierefreiheit: Benutzer mit Sehbehinderungen bei der Farbauswahl berücksichtigen
-
Leistung: Häufige Farbwechsel vermeiden, die Benutzer ablenken könnten
Fehlerbehebung
Section titled “Fehlerbehebung”Navigationsleiste ändert sich nicht:
- Überprüfen Sie, ob das Gerät Android 5.0+ ausführt
- Prüfen Sie, ob das Gerät Gestennavigation aktiviert hat
- Sicherstellen, dass das Farbformat ein gültiger Hex-Code ist (z. B. ‘#FF0000’)
Schaltflächen nicht sichtbar:
- Überprüfen Sie, ob der
darkButtons-Parameter zu Ihrer Hintergrundfarbe passt - Helle Hintergründe benötigen
darkButtons: true - Dunkle Hintergründe benötigen
darkButtons: false
Farbe erscheint anders:
- Einige Android-Versionen können die Farbe leicht modifizieren
- Verwenden Sie vollständig opake Farben für beste Ergebnisse