Saltar al contenido

Empezando

Terminal window
npm install @capgo/capacitor-textinteraction
npx cap sync
  • iOS: iOS 15.0+ (requiere UITextInteraction API)
  • Android: No operativo (devoluciones no admitidas)
  • Web: No operativo (devoluciones no admitidas)
import { TextInteraction } from '@capgo/capacitor-textinteraction';
// Disable text interaction (remove magnifier/loupe)
const result = await TextInteraction.setEnabled({ enabled: false });
if (result.success) {
console.log('Text interaction disabled');
} else {
console.log('Not supported on this platform');
}
// Re-enable text interaction before showing text inputs
await TextInteraction.setEnabled({ enabled: true });
setEnabled(options: { enabled: boolean }) => Promise<{ success: boolean }>

Habilite o deshabilite la interacción de texto iOS (lente de lupa y controladores de selección).

ParámetroTipo
options{ enabled: boolean }

Devoluciones: Promise<{ success: boolean }>

  • Devuelve { success: true } si la operación fue exitosa (iOS 15+)
  • Devuelve { success: false } si no es compatible (Android, Web o iOS < 15)

Deshabilite la interacción de texto en el modo quiosco para evitar que los usuarios accedan a los menús de copiar y pegar:

import { TextInteraction } from '@capgo/capacitor-textinteraction';
async function enterKioskMode() {
// Disable text interaction in kiosk mode
const result = await TextInteraction.setEnabled({ enabled: false });
if (result.success) {
console.log('Kiosk mode: Text interaction disabled');
}
}
async function exitKioskMode() {
// Re-enable text interaction when exiting kiosk mode
await TextInteraction.setEnabled({ enabled: true });
console.log('Kiosk mode: Text interaction enabled');
}

Retire la lente de aumento durante el juego y restáurela para ingresar texto:

import { TextInteraction } from '@capgo/capacitor-textinteraction';
class GameController {
async startGame() {
// Disable text interaction during gameplay
await TextInteraction.setEnabled({ enabled: false });
console.log('Game started - text interaction disabled');
}
async showTextInput() {
// Enable text interaction before showing input
await TextInteraction.setEnabled({ enabled: true });
console.log('Text input ready - interaction enabled');
// Show input field
this.displayInputField();
}
async hideTextInput() {
// Hide input and disable interaction again
this.hideInputField();
await TextInteraction.setEnabled({ enabled: false });
}
}

Controle la interacción de texto para señalización digital y pantallas interactivas:

import { TextInteraction } from '@capgo/capacitor-textinteraction';
async function setupInteractiveDisplay() {
// Disable text interaction for display mode
await TextInteraction.setEnabled({ enabled: false });
// Set up touch handlers for display interaction
document.addEventListener('touchstart', handleDisplayTouch);
}
async function enableUserInput() {
// Enable text interaction when user needs to input data
const result = await TextInteraction.setEnabled({ enabled: true });
if (result.success) {
showInputForm();
} else {
// Fallback for unsupported platforms
showInputFormWithoutTextInteraction();
}
}

Alternar interacción de texto según el estado del formulario:

import { TextInteraction } from '@capgo/capacitor-textinteraction';
class FormManager {
private textInteractionEnabled = true;
async disableTextSelection() {
const result = await TextInteraction.setEnabled({ enabled: false });
this.textInteractionEnabled = false;
return result.success;
}
async enableTextSelection() {
const result = await TextInteraction.setEnabled({ enabled: true });
this.textInteractionEnabled = true;
return result.success;
}
async onFormFocus() {
// Always enable before showing keyboard
await this.enableTextSelection();
}
async onFormBlur() {
// Optionally disable after input is complete
await this.disableTextSelection();
}
}

Control de interacción de texto compatible con la plataforma:

import { TextInteraction } from '@capgo/capacitor-textinteraction';
import { Capacitor } from '@capacitor/core';
async function toggleTextInteraction(enabled: boolean) {
// Only attempt on iOS
if (Capacitor.getPlatform() === 'ios') {
const result = await TextInteraction.setEnabled({ enabled });
if (result.success) {
console.log(`Text interaction ${enabled ? 'enabled' : 'disabled'}`);
} else {
console.log('Text interaction not supported on this iOS version');
}
} else {
console.log('Text interaction control only available on iOS');
}
}
// Usage
await toggleTextInteraction(false); // Disable
await toggleTextInteraction(true); // Enable
  • Always re-enable before text input: Disable text interaction when needed, but always re-enable it before showing text input fields or keyboards
  • Compruebe la compatibilidad con la plataforma: verifique que result.success maneje correctamente las plataformas no compatibles
  • Característica específica de iOS: este complemento es exclusivo de iOS; implementar alternativas para Android y Web
  • Experiencia de usuario: considere las implicaciones de UX al deshabilitar la interacción de texto
  • Gestión de estado: seguimiento del estado habilitado/deshabilitado para evitar llamadas redundantes
  1. Re-enable for text inputs: Always call setEnabled({ enabled: true }) before showing text input fields, otherwise users won’t be able to properly select or edit text

  2. Detección de plataforma: el complemento devuelve { success: false } en las versiones Android, web y iOS inferiores a 15.0.

  3. No visual feedback: Disabling text interaction removes the magnifier but doesn’t provide visual feedback - implement your own UI indicators if needed

  4. Valores predeterminados seguros: el sistema de interacción de texto está habilitado de forma predeterminada, coincidiendo con el comportamiento estándar de iOS

  • iOS 15.0+ únicamente (requiere UITextInteraction API)
  • Sin efecto en Android o plataformas web
  • No se puede desactivar selectivamente sólo la lupa o sólo los controladores de selección.
  • No hay devolución de llamada cuando los usuarios intentan utilizar funciones deshabilitadas

Casos de uso- Aplicaciones de quiosco: evita copiar y pegar en instalaciones controladas

Section titled “Casos de uso- Aplicaciones de quiosco: evita copiar y pegar en instalaciones controladas”
  • Experiencias de juego: elimina la lupa durante el juego
  • Pantallas interactivas: controla la interacción del texto en la señalización digital
  • Custom text editors: Build specialized text editing experiences
  • Seguridad: evita la selección de texto en áreas sensibles
  • Verifique que la versión iOS sea 15.0 o superior
  • Verifique que result.success devuelva true
  • Asegúrese de que ningún otro código vuelva a habilitar la interacción de texto
  • Make sure you called setEnabled({ enabled: true }) before showing text inputs
  • Verify the enable call succeeded by checking result.success
  • Test on actual iOS device (not just simulator)