Saltar al contenido

Primeros pasos

GitHub

Puedes usar nuestro setup asistido por IA para instalar el plugin. Añade las skills de Capgo a tu herramienta de IA con el siguiente comando:

Ventana de terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Luego usa el siguiente prompt:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-android-sms-retriever` plugin in my project.

Si prefieres la configuración manual, instala el plugin ejecutando estos comandos y sigue las instrucciones de cada plataforma:

Ventana de terminal
npm install @capgo/capacitor-android-sms-retriever
npx cap sync android

Escucha el SMS de un solo uso, extrae el OTP y activa el retriever antes de que el usuario solicite un code.

import { AndroidSmsRetriever } from '@capgo/capacitor-android-sms-retriever';
const smsListener = await AndroidSmsRetriever.addListener('smsReceived', ({ message }) => {
const code = message.match(/\b\d{4,8}\b/)?.[0];
if (code) submitCode(code);
// The SMS also ends with your 11-character app hash; validate it separately from the OTP.
});
await AndroidSmsRetriever.startWatch();
// When the flow completes:
await smsListener.remove();
await AndroidSmsRetriever.stopWatch();
  • Hash: Las plantillas de SMS deben incluir el hash del app retriever.
  • Timeout: reinicia el watch cuando los usuarios soliciten un nuevo code.
  • Play services: requerido en el dispositivo.
import { AndroidSmsRetriever } from '@capgo/capacitor-android-sms-retriever';

SMS Retriever requiere Google Play services en el dispositivo Android. El plugin no solicita READ_SMS o RECEIVE_SMS permisos.

Tu SMS de verificación debe incluir el hash de la app devuelto por getHashString(). Genera el hash para la clave de firma usada al distribuir la app. Los builds de Debug, release y Play App Signing pueden tener hashes distintos.

import { AndroidSmsRetriever } from '@capgo/capacitor-android-sms-retriever';
const received = await AndroidSmsRetriever.addListener('smsReceived', ({ message }) => {
const code = message.match(/\b\d{6}\b/)?.[0];
console.log('Verification code:', code);
});
const timeout = await AndroidSmsRetriever.addListener('smsRetrieverTimeout', () => {
console.log('SMS Retriever timed out');
});
const errors = await AndroidSmsRetriever.addListener('smsRetrieverError', ({ message }) => {
console.error('SMS Retriever error:', message);
});
await AndroidSmsRetriever.startWatch();
// Remove listeners when the verification flow is done.
await received.remove();
await timeout.remove();
await errors.remove();
await AndroidSmsRetriever.stopWatch();
const { hash } = await AndroidSmsRetriever.getHashString();
console.log(hash);

Usa este hash al final del SMS de verificación enviado por tu backend.

const { phoneNumber } = await AndroidSmsRetriever.getPhoneNumber();
console.log(phoneNumber);

Android muestra la interfaz nativa de Phone Number Hint y devuelve el número seleccionado por el usuario.

<#> 123456 is your verification code.
FA+9qCX9VSu

Reemplaza la última línea con el hash de la clave de firma de tu app.

Si estás usando Primeros pasos para planificar el trabajo con plugins nativos, conéctalo con Uso de @capgo/capacitor-android-sms-retriever para la funcionalidad nativa en Uso de @capgo/capacitor-android-sms-retriever, Directorio de plugins de Capgo para el flujo de trabajo del producto en Capgo Plugin Directory, Plugins de Capacitor por Capgo para el detalle de implementación en los Plugins de Capacitor por Capgo, Añadir o actualizar plugins para el detalle de implementación en Agregar o actualizar plugins, y Alternativas a plugins de Ionic Enterprise para el flujo de trabajo del producto en Alternativas a plugins de Ionic Enterprise.