Получение «DOMException: получение OTP было отменено». при использовании WebOTP APIAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Получение «DOMException: получение OTP было отменено». при использовании WebOTP API

Сообщение Anonymous »

Я тестирую API WebOTP для автозаполнения кода проверки с помощью API WebOTP.
Я пытаюсь заполнить элемент ввода HTML внутри iframe с перекрестным происхождением. iframe — это приложение Preact.
Я добавил следующее в код iframe, в котором находятся вводимые данные:

Код: Выделить всё

useEffect(() => {
if ('OTPCredential' in window) {
const input = document.querySelector(
'input[name="code-input-0"]',
);
if (!input) return;
const ac = new AbortController();
navigator.credentials
.get({
otp: { transport: ['sms'] },
signal: ac.signal,
})
.then(otp => {
input.value = otp!.code;
ac.abort();
})
.catch(err => {
console.error(err);
ac.abort();
});
}
});
Для поддержки iframe из разных источников я добавил атрибутallow='otp-credentials' в тег iframe.
Однако когда я перехожу на страницу с вводом, я вижу DOMException: получение OTP было отменено. в консоли. Когда я отправляю текстовое сообщение, я вижу наложение с просьбой разрешить Chrome прочитать сообщение и ввести код. Когда я выбираю «Разрешить», ничего не происходит.
Отправленный мною текстовый формат:

Код: Выделить всё

Your OTP is: 12345
@top-level-domain.com #12345 @iframe-domain.com
Текстовый формат выглядит нормально, поскольку он предлагает наложение. Но я не уверен, почему DOMException возникает при загрузке страницы. Будем очень признательны за любую информацию о том, почему это происходит.

Подробнее здесь: https://stackoverflow.com/questions/755 ... webotp-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»