跳转到正文

快速入门

GitHub

你可以使用我们的 AI 辅助设置来安装插件。使用以下命令将 Capgo skills 添加到你的 AI 工具中:

终端窗口
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

然后使用以下 prompt:

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

如果你更想手动设置,请运行以下命令安装插件,并按照下方各平台的说明操作:

终端窗口
npm install @capgo/capacitor-android-sms-retriever
npx cap sync android

监听一次性短信,提取 OTP,并在用户请求 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:SMS 模板必须包含应用的 retriever hash。
  • 超时:当用户请求新的 code 时,重启监听。
  • Google Play 服务:设备上必须安装。
import { AndroidSmsRetriever } from '@capgo/capacitor-android-sms-retriever';

SMS Retriever 需要 Android 设备安装 Google Play services。该插件不会请求 READ_SMS 或 RECEIVE_SMS 权限。

您的验证短信必须包含由以下内容返回的应用哈希值: getHashString()请为用于分发 App 的签名密钥生成 Hash。Debug、Release 以及 Play App Signing 构建版本可能具有不同的 Hash。

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);

将此 hash 放在后端发送的验证短信末尾。

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

Android 会显示原生的 Phone Number Hint UI,并返回用户选择的电话号码。

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

将最后一行替换为你应用签名密钥的哈希值。

如果你正在使用 快速入门 要规划原生插件工作,请将其与 使用 @capgo/capacitor-android-sms-retriever 用于“使用 @capgo/capacitor-android-sms-retriever”中的原生能力, Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 查看由 Capgo 提供的 Capacitor 插件中的实现细节, 添加或更新插件 关于“添加或更新插件”中的实现细节,以及 Ionic Enterprise 插件替代方案 关于“Ionic Enterprise 插件替代方案”中的产品工作流。