Как реализовать реагировать нативный otp retriever и генерировать хеш-ключ для приложения - PullRequest
0 голосов
/ 24 сентября 2019

Начинающий реагировать на нативный

Я пытаюсь проверить OTP автоматически, используя react-native-sms-retriever Я реализовал следующий пример в проекте

Пример реализован Этот пример не является способом получения ключа хеша.вы должны получить его вручную, выполнив команду

Когда я выполню команду, она не будет запрашивать пароль.Он должен спросить , потому что здесь это

Я сгенерировал отладочный хеш-ключ , используя приведенную ниже команду, выполненную в папке 'java / bin'.Но это не

keytool -exportcert -alias androiddebugkey -keystore '~\.android\debug.keystore' | xxd -p | tr -d "[:space:]" | echo -n com.opick.app cat | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

Как сгенерировать хеш-ключ для сборки релиза. Попытка после возврата неверного ключа

keytool -exportcert -alias my-key-alias -keystore my-key.keystore | xxd -p | tr -d "[:space:]" | echo -n com.opick.app `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

Я прочитал документ, который говорит, что вам нужно добавить pathдля release keystore в приведенной выше команде. для меня я не работаю, пожалуйста, обновите на тот же

Основная проблема заключается в том, что сгенерированный ключ отличается на cmd и bash

Ответы [ 2 ]

1 голос
/ 24 сентября 2019
import SmsRetriever from 'react-native-sms-retriever';

// Get the phone number (first gif)
 _onPhoneNumberPressed = async () => {
  try {
    const phoneNumber = await SmsRetriever.requestPhoneNumber();
  } catch (error) {
    console.log(JSON.stringify(error));
  }
 };

// Get the SMS message (second gif)
_onSmsListenerPressed = async () => {
  try {
    const registered = await SmsRetriever.startSmsRetriever();
    if (registered) {
      SmsRetriever.addSmsListener(event => {
        console.log(event.message);
        SmsRetriever.removeSmsListener();
      }); 
    }
  } catch (error) {
    console.log(JSON.stringify(error));
  }
};

Об ошибке тайм-аута см .: https://github.com/Bruno-Furtado/react-native-sms-retriever/issues/4

0 голосов
/ 25 сентября 2019

Я пробовал два-три примера, но мне не удалось получить hash key для release объявления debug, затем я попробовал следующее решение. Оно работало отлично.Также вы можете использовать этот код, чтобы получить hash key, и вы можете продолжить реализацию

Reaction-native-otp-verify

Следующий код будетдать вам хэш-ключ для выпуска и отладки apk, просто получите ключ и скопируйте его куда-нибудь для использования

import RNOtpVerify from 'react-native-otp-verify';

getHash = () =>
   RNOtpVerify.getHash()
  .then(console.log)
  .catch(console.log);

startListeningForOtp = () =>
    RNOtpVerify.getOtp()
    .then(p => RNOtpVerify.addListener(this.otpHandler))
    .catch(p => console.log(p));

otpHandler = (message: string) => {
    const otp = /(\d{4})/g.exec(message)[1];
    this.setState({ otp });
    RNOtpVerify.removeListener();
    Keyboard.dismiss();
  }

 componentWillUnmount() {
   RNOtpVerify.removeListener();
 }
...