Getting Started
-
パッケージのインストール
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 -
ネイティブプロジェクトとの同期
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync -
プラグインの設定
ナビゲーションバーの色を設定:
import { NavigationBar } from '@capgo/capacitor-navigation-bar';// ナビゲーションバーの色を設定await NavigationBar.setColor({color: '#FF0000', // 赤色darkButtons: false // ライトボタンを使用});動的テーマサポート:
// テーマに基づいて色を設定const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;await NavigationBar.setColor({color: isDarkMode ? '#000000' : '#FFFFFF',darkButtons: !isDarkMode});最小要件:
- Android 5.0(APIレベル21)以上
- プラグインはAndroidデバイスでのみ動作します
AndroidManifest.xmlでの追加設定は不要です。
このプラグインはAndroid専用です。iOSにはカスタマイズ可能なナビゲーションバーがありません。
-
高度な使用方法
import { NavigationBar } from '@capgo/capacitor-navigation-bar';export class ThemeService {// 透明なナビゲーションバーを設定async setTransparent() {await NavigationBar.setColor({color: '#00000000', // 透明darkButtons: true});}// アプリテーマに合わせるasync matchAppTheme(primaryColor: string, isLight: boolean) {await NavigationBar.setColor({color: primaryColor,darkButtons: isLight});}// 現在のナビゲーションバーの色を取得async getCurrentColor() {const result = await NavigationBar.getColor();console.log('Current color:', result.color);return result.color;}// デフォルトにリセットasync resetToDefault() {await NavigationBar.setColor({color: '#000000',darkButtons: false});}} -
アプリライフサイクルとの統合
import { App } from '@capacitor/app';import { NavigationBar } from '@capgo/capacitor-navigation-bar';// アプリ状態変更時にナビゲーションバーを更新App.addListener('appStateChange', async ({ isActive }) => {if (isActive) {// アプリのナビゲーションバーの色を復元await NavigationBar.setColor({color: '#YourAppColor',darkButtons: true});}});// テーマ変更を処理window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', async (e) => {await NavigationBar.setColor({color: e.matches ? '#121212' : '#FFFFFF',darkButtons: !e.matches});});
APIリファレンス
Section titled “APIリファレンス”setColor(options: ColorOptions)
Section titled “setColor(options: ColorOptions)”ナビゲーションバーの色とボタンスタイルを設定します。
パラメータ:
options: 設定オブジェクトcolor: string - 16進数カラーコード(例:‘#FF0000’)darkButtons: boolean - ダークボタンを使用(true)またはライトボタン(false)
戻り値: Promise<void>
getColor()
Section titled “getColor()”現在のナビゲーションバーの色を取得します。
戻り値: Promise<{ color: string }>
インターフェース
Section titled “インターフェース”interface ColorOptions { color: string; // 16進数カラーコード darkButtons: boolean; // ボタンスタイル}
interface ColorResult { color: string; // 現在の16進数カラー}プラットフォームノート
Section titled “プラットフォームノート”Android
Section titled “Android”- Android 5.0(APIレベル21)以上が必要
- 色の変更は即座に反映されます
- 透明色がサポートされています(アルファチャネルを使用)
- ジェスチャーナビゲーションを使用するデバイスでは、ナビゲーションバーが表示されない場合があります
- このプラグインはiOSデバイスでは効果がありません
- iOSはシステムナビゲーションをカスタマイズするAPIを提供していません
一般的な使用例
Section titled “一般的な使用例”- ブランドの一貫性:ナビゲーションバーをアプリのプライマリカラーに合わせる
- テーマサポート:ライト/ダークテーマに動的に適応
- 没入型体験:フルスクリーンコンテンツに透明なナビゲーションを使用
- ステータス表示:アプリの状態(録音中、エラーなど)を示すために色を変更
ベストプラクティス
Section titled “ベストプラクティス”-
色のコントラスト:ナビゲーションバーとボタンの間に十分なコントラストを確保
// 良いコントラストの例setColor({ color: '#FFFFFF', darkButtons: true }); // 白いバー、ダークボタンsetColor({ color: '#000000', darkButtons: false }); // 黒いバー、ライトボタン -
テーマの一貫性:テーマが変更されたときにナビゲーションバーを更新
-
アクセシビリティ:色を選択する際に視覚障害のあるユーザーを考慮
-
パフォーマンス:ユーザーの気を散らす可能性のある頻繁な色の変更を避ける
トラブルシューティング
Section titled “トラブルシューティング”ナビゲーションバーが変更されない:
- デバイスがAndroid 5.0以上を実行していることを確認
- デバイスでジェスチャーナビゲーションが有効になっているか確認
- 色の形式が有効な16進数(例:‘#FF0000’)であることを確認
ボタンが表示されない:
darkButtonsパラメータが背景色と一致していることを確認- ライトな背景には
darkButtons: trueが必要 - ダークな背景には
darkButtons: falseが必要
色が異なって見える:
- 一部のAndroidバージョンでは色がわずかに変更される場合があります
- 最良の結果を得るために完全に不透明な色を使用