Я использую react-native-otp-auto-verify для автоматического определения OTP из SMS в моем приложении React Native. Ниже приведено полное руководство по настройке для Android с использованием официального API SMS Retriever.
Что такое response-native-otp-auto-verify?
Код: Выделить всё
react-native-otp-auto-verifyОна:
-
НЕ требует READ_SMS
-
НЕ требует RECEIVE_SMS
-
Соответствует ли Play Store
-
Работает автоматически, когда SMS содержит хэш вашего приложения.
НЕ читает SMS автоматически на iOS (поддерживается только автозаполнение с клавиатуры)
https://www.npmjs.com/package/react-nat ... Tab=readme
https://github.com/kailas-rathod/react- ... me-ov-file
Код: Выделить всё
npm install react-native-otp-auto-verify
Код: Выделить всё
cd ios && pod install
Ваша серверная часть должна добавить хэш для конкретного приложения в конце OTP SMS.
Получите хэш внутри вашего приложения:
Код: Выделить всё
import { getHash } from 'react-native-otp-auto-verify';
import { useEffect } from 'react';
useEffect(() => {
getHash().then(hash => {
console.log('App Hash:', hash);
});
}, []);
Шаг 3. Требуемый формат SMS
Ваше OTP SMS должно выглядеть следующим образом:
Код: Выделить всё
Your verification code is 123456
FA+9qCX9VSu
Шаг 4. Использование Hook API (рекомендуется)
Код: Выделить всё
import React, { useEffect } from 'react';
import { Text } from 'react-native';
import { useOtpVerification } from 'react-native-otp-auto-verify';
export default function OtpScreen() {
const { otp, startListening, stopListening } =
useOtpVerification({ numberOfDigits: 6 });
useEffect(() => {
startListening();
return () => stopListening();
}, []);
return OTP: {otp};
}
- OTP извлекается автоматически
- обновления состояния
Код: Выделить всё
otp - Вы можете автоматически отправить подтверждение
Код: Выделить всё
import {
startOtpListener,
removeListener,
} from 'react-native-otp-auto-verify';
useEffect(() => {
startOtpListener(message => {
const otp = message.match(/\d{6}/)?.[0];
console.log('OTP:', otp);
removeListener();
});
return () => removeListener();
}, []);
iOS НЕ позволяет приложениям автоматически читать SMS.
Вместо этого используйте:
Код: Выделить всё
Код: Выделить всё
Код: Выделить всё
Feature Android iOS
Automatic OTP detection ✅ ❌
SMS Permission Required ❌ ❌
Keyboard OTP Autofill ❌ ✅
https://www.npmjs.com/package/react-nat ... Tab=readme
Подробнее здесь: https://stackoverflow.com/questions/798 ... -react-nat
Мобильная версия