Почему автоматическое определение otp не отображает код в React

Я использую автоматическое определение otp в своем приложении, используя документацию web-otp. Я использовал код bleow в своем приложении

        otprenderGetMobile() {
                const{ otpValue}=this.props;
                let signal = new AbortController();
        
                setTimeout(() => {
                    // abort after 10 minutes
                    signal.abort();
                }, 10 * 60 * 1000);
        
                let { code, type } = navigator.credentials.get({
                    abort: signal,
                    otp: {
                        transport: ["sms"]
                    }
                }).then(otp=>{
                alert('otp value is: ',JSON.stringify(otp));
                alert('code value is: ',JSON.stringify(code));
                alert('type value is: ',JSON.stringify(type));
                    otpValue = otp;
                });
            }

мой хтм

<input
  type = "text"
  id = "otp"
  name = "otp"
  autocomplete = "one-time-code"
/> 

мой формат сообщения OTP

3052 is your Myapp verification code

@dev.myapp.com #3052

он отлично работает на устройстве Android, но проблема в том, что когда я разрешаю разрешение устройства, otp не запрашивает в приложении. Я прикрепил изображения выходов андроида

вот результаты после того, как я разрешил доступ к браузеру

откуда вы вызвали эту функцию otprenderGetMobile , у меня после нажатия "разрешить" otp не копируется в поле. Я вызываю вышеуказанный метод из useEffect(()=>otprendermethod,[]) Пожалуйста, помогите мне

CodeZombie 03.03.2021 08:24

пожалуйста, помогите мне с приведенным выше комментарием, я поддержу данный ответ.

CodeZombie 08.03.2021 10:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
1 511
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

используйте это в компоненте jsx

<input
  type = "text"
  autocomplete = "one-time-code"
/> 

ресурс https://www.twilio.com/blog/html-attributes-two-factor-authentication-autocomplete

я использую то же самое. autocomplete = "one-time-code" используется для запроса текстового поля для установки значения кода! это не проблема. проблема в том, что метод navigator.credentials.get() должен возвращать otp, но по какой-то причине он не возвращает никакого значения.

Zulqarnain Jalil 19.12.2020 12:46
Ответ принят как подходящий

Я решил проблему, просто заменив приведенный ниже код

 let { code, type } = navigator.credentials.get({
                    abort: signal,
                    otp: {
                        transport: ["sms"]
                    }
                }).then(otp=>{
                alert('otp value is: ',JSON.stringify(otp));
                alert('code value is: ',JSON.stringify(code));
                alert('type value is: ',JSON.stringify(type));
                    otpValue = otp;
                });

с этим

 navigator.credentials.get({
                otp: { transport: ['sms'] },
                signal: ac.signal
            }).then(otp => {
               console.info('your otp code is',otp.code)
            }).catch(err => {
                console.info(err);
            });

Другие вопросы по теме