Memulai
-
Instal paket
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 -
Sinkronkan dengan proyek native
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync -
Konfigurasi plugin
Atur Warna Navigation Bar:
import { NavigationBar } from '@capgo/capacitor-navigation-bar';// Atur warna navigation barawait NavigationBar.setColor({color: '#FF0000', // Warna merahdarkButtons: false // Gunakan tombol terang});Dukungan Tema Dinamis:
// Atur warna berdasarkan temaconst isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;await NavigationBar.setColor({color: isDarkMode ? '#000000' : '#FFFFFF',darkButtons: !isDarkMode});Persyaratan Minimum:
- Android 5.0 (API level 21) atau lebih tinggi
- Plugin hanya berfungsi di perangkat Android
Tidak perlu pengaturan tambahan di AndroidManifest.xml.
Plugin ini khusus Android. iOS tidak memiliki navigation bar yang dapat disesuaikan.
-
Penggunaan lanjutan
import { NavigationBar } from '@capgo/capacitor-navigation-bar';export class ThemeService {// Atur navigation bar transparanasync setTransparent() {await NavigationBar.setColor({color: '#00000000', // TransparandarkButtons: true});}// Sesuaikan tema aplikasiasync matchAppTheme(primaryColor: string, isLight: boolean) {await NavigationBar.setColor({color: primaryColor,darkButtons: isLight});}// Dapatkan warna navigation bar saat iniasync getCurrentColor() {const result = await NavigationBar.getColor();console.log('Warna saat ini:', result.color);return result.color;}// Reset ke defaultasync resetToDefault() {await NavigationBar.setColor({color: '#000000',darkButtons: false});}} -
Integrasi dengan siklus hidup aplikasi
import { App } from '@capacitor/app';import { NavigationBar } from '@capgo/capacitor-navigation-bar';// Perbarui navigation bar saat status aplikasi berubahApp.addListener('appStateChange', async ({ isActive }) => {if (isActive) {// Pulihkan warna navigation bar aplikasi Andaawait NavigationBar.setColor({color: '#YourAppColor',darkButtons: true});}});// Tangani perubahan temawindow.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', async (e) => {await NavigationBar.setColor({color: e.matches ? '#121212' : '#FFFFFF',darkButtons: !e.matches});});
Referensi API
Section titled āReferensi APIāsetColor(options: ColorOptions)
Section titled āsetColor(options: ColorOptions)āAtur warna navigation bar dan gaya tombol.
Parameter:
options: Objek konfigurasicolor: string - Kode warna hex (mis., ā#FF0000ā)darkButtons: boolean - Gunakan tombol gelap (true) atau tombol terang (false)
Mengembalikan: Promise<void>
getColor()
Section titled āgetColor()āDapatkan warna navigation bar saat ini.
Mengembalikan: Promise<{ color: string }>
Interface
Section titled āInterfaceāinterface ColorOptions { color: string; // Kode warna hex darkButtons: boolean; // Gaya tombol}
interface ColorResult { color: string; // Warna hex saat ini}Catatan Platform
Section titled āCatatan PlatformāAndroid
Section titled āAndroidā- Memerlukan Android 5.0 (API level 21) atau lebih tinggi
- Perubahan warna langsung terjadi
- Warna transparan didukung (gunakan alpha channel)
- Navigation bar mungkin tidak terlihat pada perangkat dengan navigasi gesture
- Plugin ini tidak berpengaruh pada perangkat iOS
- iOS tidak menyediakan API untuk menyesuaikan navigasi sistem
Kasus Penggunaan Umum
Section titled āKasus Penggunaan Umumā- Konsistensi Merek: Sesuaikan navigation bar dengan warna utama aplikasi Anda
- Dukungan Tema: Beradaptasi dengan tema terang/gelap secara dinamis
- Pengalaman Immersive: Gunakan navigasi transparan untuk konten layar penuh
- Indikasi Status: Ubah warna untuk menunjukkan status aplikasi (merekam, error, dll.)
Praktik Terbaik
Section titled āPraktik Terbaikā-
Kontras Warna: Pastikan kontras yang cukup antara navigation bar dan tombol
// Contoh kontras yang baiksetColor({ color: '#FFFFFF', darkButtons: true }); // Bar putih, tombol gelapsetColor({ color: '#000000', darkButtons: false }); // Bar hitam, tombol terang -
Konsistensi Tema: Perbarui navigation bar saat tema berubah
-
Aksesibilitas: Pertimbangkan pengguna dengan gangguan penglihatan saat memilih warna
-
Performa: Hindari perubahan warna yang sering yang mungkin mengganggu pengguna
Pemecahan Masalah
Section titled āPemecahan MasalahāNavigation bar tidak berubah:
- Verifikasi perangkat menjalankan Android 5.0+
- Periksa apakah perangkat memiliki navigasi gesture yang diaktifkan
- Pastikan format warna adalah hex yang valid (mis., ā#FF0000ā)
Tombol tidak terlihat:
- Periksa parameter
darkButtonssesuai dengan warna latar belakang Anda - Latar belakang terang memerlukan
darkButtons: true - Latar belakang gelap memerlukan
darkButtons: false
Warna tampak berbeda:
- Beberapa versi Android mungkin memodifikasi warna sedikit
- Gunakan warna yang sepenuhnya buram untuk hasil terbaik