Comenzar
-
Instalar el paquete
Ventana de terminal npm i @capgo/home-indicatorVentana de terminal pnpm add @capgo/home-indicatorVentana de terminal yarn add @capgo/home-indicatorVentana de terminal bun add @capgo/home-indicator -
Sincronizar con proyectos nativos
Ventana de terminal npx cap syncVentana de terminal pnpm cap syncVentana de terminal yarn cap syncVentana de terminal bunx cap sync -
Configurar el plugin
Ocultar Indicador de Inicio:
import { HomeIndicator } from '@capgo/home-indicator';// Hide the home indicatorawait HomeIndicator.hide();Mostrar Indicador de Inicio:
// Show the home indicatorawait HomeIndicator.show();// Check visibility statusconst { hidden } = await HomeIndicator.isHidden();console.log('Is hidden:', hidden);No se requiere configuración adicional. El plugin solo funciona en dispositivos iOS con indicador de inicio (iPhone X y posteriores).
Este plugin no tiene efecto en dispositivos Android ya que no tienen un indicador de inicio estilo iOS.
-
Configuración de auto-ocultación
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 -
Uso avanzado
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();}});}}
Referencia de API
Section titled “Referencia de API”Métodos
Section titled “Métodos”hide()
Section titled “hide()”Oculta el indicador de inicio.
Retorna: Promise<void>
show()
Section titled “show()”Muestra el indicador de inicio.
Retorna: Promise<void>
isHidden()
Section titled “isHidden()”Verifica si el indicador de inicio está actualmente oculto.
Retorna: Promise<{ hidden: boolean }>
setAutoHidden(options: { autoHidden: boolean })
Section titled “setAutoHidden(options: { autoHidden: boolean })”Configura el comportamiento de auto-ocultación del indicador de inicio.
Parámetros:
options.autoHidden: boolean - Habilita o deshabilita la auto-ocultación
Retorna: Promise<void>
Interfaces
Section titled “Interfaces”interface AutoHiddenOptions { autoHidden: boolean;}
interface HiddenResult { hidden: boolean;}Notas de Plataforma
Section titled “Notas de Plataforma”- Solo funciona en dispositivos con indicador de inicio (iPhone X y posteriores)
- Requiere iOS 11.0 o posterior
- La auto-ocultación hace que el indicador sea translúcido y se oculte después de inactividad
- El indicador reaparece cuando los usuarios deslizan desde la parte inferior
Android
Section titled “Android”- Este plugin no tiene efecto en Android
- Android usa diferentes gestos/botones de navegación
Casos de Uso Comunes
Section titled “Casos de Uso Comunes”- Juegos: Juego a pantalla completa sin distracciones
- Reproductores de Video: Reproducción de video inmersiva
- Visores de Fotos: Galerías de fotos a pantalla completa
- Presentaciones: Presentaciones sin distracciones
- Aplicaciones Kiosko: Aplicaciones de exhibición pública
Mejores Prácticas
Section titled “Mejores Prácticas”-
Control del Usuario: Siempre proporciona una forma de salir del modo inmersivo
// Add a gesture or button to toggle immersive modeconst toggleButton = document.getElementById('toggle-immersive');toggleButton.addEventListener('click', () => {immersiveMode.toggleImmersiveMode();}); -
Auto-ocultación para Juegos: Usa auto-ocultación para mejor experiencia de juego
// For games, auto-hide provides the best balanceawait HomeIndicator.setAutoHidden({ autoHidden: true }); -
Respetar Gestos del Sistema: No interferir con la navegación del sistema
-
Guardar Estado: Recordar la preferencia del usuario para el modo inmersivo
Solución de Problemas
Section titled “Solución de Problemas”El indicador de inicio no se oculta:
- Verifica que el dispositivo tenga indicador de inicio (iPhone X+)
- Verifica que la versión de iOS sea 11.0 o superior
- Asegúrate de que la aplicación tenga foco
La auto-ocultación no funciona:
- La auto-ocultación requiere interacción del usuario para activarse
- El indicador se vuelve translúcido, no completamente oculto
El indicador reaparece inesperadamente:
- Este es un comportamiento normal de iOS para gestos del sistema
- Usa auto-ocultación para un comportamiento menos intrusivo