Я пытаюсь заполнить элемент ввода 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();
});
}
});
Однако когда я перехожу на страницу с вводом, я вижу DOMException: получение OTP было отменено. в консоли. Когда я отправляю текстовое сообщение, я вижу наложение с просьбой разрешить Chrome прочитать сообщение и ввести код. Когда я выбираю «Разрешить», ничего не происходит.
Отправленный мною текстовый формат:
Код: Выделить всё
Your OTP is: 12345
@top-level-domain.com #12345 @iframe-domain.com
Подробнее здесь: https://stackoverflow.com/questions/755 ... webotp-api
Мобильная версия