Memulai
-
Instal paket
Terminal window npm i @capgo/home-indicatorTerminal window pnpm add @capgo/home-indicatorTerminal window yarn add @capgo/home-indicatorTerminal window bun add @capgo/home-indicator -
Sinkronkan dengan proyek native
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync -
Konfigurasi plugin
Sembunyikan Home Indicator:
import { HomeIndicator } from '@capgo/home-indicator';// Hide the home indicatorawait HomeIndicator.hide();Tampilkan Home Indicator:
// Show the home indicatorawait HomeIndicator.show();// Check visibility statusconst { hidden } = await HomeIndicator.isHidden();console.log('Is hidden:', hidden);Tidak diperlukan pengaturan tambahan. Plugin hanya bekerja pada perangkat iOS dengan home indicator (iPhone X dan yang lebih baru).
Plugin ini tidak memiliki efek pada perangkat Android karena mereka tidak memiliki home indicator bergaya iOS.
-
Konfigurasi auto-hide
import { HomeIndicator } from '@capgo/home-indicator';// Configure auto-hide behaviorawait HomeIndicator.setAutoHidden({autoHidden: true // Enable auto-hide});// The home indicator will automatically hide after a few seconds// and reappear when the user touches the screen -
Penggunaan lanjutan
import { HomeIndicator } from '@capgo/home-indicator';import { App } from '@capacitor/app';export class ImmersiveMode {private isImmersive = false;async enterImmersiveMode() {this.isImmersive = true;// Hide home indicatorawait HomeIndicator.hide();// Enable auto-hide for better UXawait HomeIndicator.setAutoHidden({ autoHidden: true });// Hide status bar for full immersion// StatusBar.hide(); // If using @capacitor/status-bar}async exitImmersiveMode() {this.isImmersive = false;// Show home indicatorawait HomeIndicator.show();// Disable auto-hideawait HomeIndicator.setAutoHidden({ autoHidden: false });// Show status bar// StatusBar.show(); // If using @capacitor/status-bar}async toggleImmersiveMode() {const { hidden } = await HomeIndicator.isHidden();if (hidden) {await this.exitImmersiveMode();} else {await this.enterImmersiveMode();}}setupAppLifecycle() {// Handle app state changesApp.addListener('appStateChange', async ({ isActive }) => {if (!isActive && this.isImmersive) {// App went to background, might want to show indicatorawait HomeIndicator.show();} else if (isActive && this.isImmersive) {// App came to foreground, restore immersive modeawait HomeIndicator.hide();}});}}
Referensi API
Section titled “Referensi API”Metode
Section titled “Metode”hide()
Section titled “hide()”Sembunyikan home indicator.
Returns: Promise<void>
show()
Section titled “show()”Tampilkan home indicator.
Returns: Promise<void>
isHidden()
Section titled “isHidden()”Periksa apakah home indicator saat ini disembunyikan.
Returns: Promise<{ hidden: boolean }>
setAutoHidden(options: { autoHidden: boolean })
Section titled “setAutoHidden(options: { autoHidden: boolean })”Konfigurasi perilaku auto-hide untuk home indicator.
Parameter:
options.autoHidden: boolean - Aktifkan atau nonaktifkan auto-hide
Returns: Promise<void>
Interface
Section titled “Interface”interface AutoHiddenOptions { autoHidden: boolean;}
interface HiddenResult { hidden: boolean;}Catatan Platform
Section titled “Catatan Platform”- Hanya bekerja pada perangkat dengan home indicator (iPhone X dan yang lebih baru)
- Memerlukan iOS 11.0 atau yang lebih baru
- Auto-hide membuat indicator menjadi tembus pandang dan menyembunyikannya setelah tidak aktif
- Indicator muncul kembali saat pengguna menggesek dari bawah
Android
Section titled “Android”- Plugin ini tidak memiliki efek pada Android
- Android menggunakan gestur/tombol navigasi yang berbeda
Kasus Penggunaan Umum
Section titled “Kasus Penggunaan Umum”- Game: Gaming layar penuh tanpa gangguan
- Video Player: Pemutaran video yang immersive
- Penampil Foto: Galeri foto layar penuh
- Presentasi: Presentasi tanpa gangguan
- Aplikasi Kiosk: Aplikasi tampilan publik
Praktik Terbaik
Section titled “Praktik Terbaik”-
Kontrol Pengguna: Selalu sediakan cara untuk keluar dari mode immersive
// Add a gesture or button to toggle immersive modeconst toggleButton = document.getElementById('toggle-immersive');toggleButton.addEventListener('click', () => {immersiveMode.toggleImmersiveMode();}); -
Auto-Hide untuk Game: Gunakan auto-hide untuk pengalaman gaming yang lebih baik
// For games, auto-hide provides the best balanceawait HomeIndicator.setAutoHidden({ autoHidden: true }); -
Hormati Gestur Sistem: Jangan mengganggu navigasi sistem
-
Simpan Status: Ingat preferensi pengguna untuk mode immersive
Pemecahan Masalah
Section titled “Pemecahan Masalah”Home indicator tidak tersembunyi:
- Verifikasi perangkat memiliki home indicator (iPhone X+)
- Periksa versi iOS adalah 11.0 atau lebih tinggi
- Pastikan aplikasi memiliki fokus
Auto-hide tidak berfungsi:
- Auto-hide memerlukan interaksi pengguna untuk mengaktifkan
- Indicator menjadi tembus pandang, tidak sepenuhnya tersembunyi
Indicator muncul kembali secara tidak terduga:
- Ini adalah perilaku iOS normal untuk gestur sistem
- Gunakan auto-hide untuk perilaku yang kurang mengganggu