Автозаполнение формы в браузере yandex. Yandex autofill
Почитал вот это: https://yandex.ru/dev/conversion/doc/api/1.x/autofill.html И решил сделать yandex autofill на своем сайте.
Сразу возникла проблема, что никакой браузер на компе и сам yandex browser в их числе, не выводит window.yandex.autofill и пишет undefined
Дальше window.yandex в yandex browser дело не идет и все методы которые там описаны возвращаются со значением null или undefined
Авторизовался в yandex браузере под своим емейлом. Yandex map api и саму карту на странице добавил.
На смартфоне, стандартная команда для вывода работает с одной погрешностью, что надо заменить console.log на alert иначе никакого окна оповещения о данных пользователя не получить( инструмента разработчика в mobile yandex browser я не нашел.
Вопрос у меня в том, как завести выводе окна оповещения о заполнении данных автоматически с браузера на компе, чтобы хотя бы понять как оно выводится и при каких условиях оно будет данные мои в форму добавлять. Хоть какой-то простенький пример с формой, в которую сохранённые данные от авторизованного пользователя в yandex browser будут подставлять, при появлении окна с оповещением о заполнении данных автоматически. Сейчас окно у меня появляется и при нажатии кнопки "ок" ничего не происходит.. Сложно валидировать что-то, без консоли :((
Если кто сталкивался с таким, мб какую-то версию браузера надо поставить или галочку в самом браузере, почему на desktop версии браузера оно не работает, подскажите пожалуйста. Только очень прошу по существу и с примерами, буду очень благодарен!!!
Ответы (1 шт):
Нашел решение этот простенький код без async / await выведет вам данные о имени, телефоне и емейле. Под себя как захотите адаптируете или измените, главное наглядный пример. Условие: заходите с смартфона в yandex браузер, авторизовываетесь там под своим yandex мылом. Вставляете этот код в свой компонент и смотрите результат.
<template>
<div class="profileDataDisplay"></div>
</template>
<script lang="ts" setup>
if (window.yandex && window.yandex.autofill) {
window.yandex.autofill.getProfileData(['name', 'email', 'phone', 'address'])
.then((result) => {
console.log(result);
// Используем полученные данные для вывода
const profileDataDisplay = document.querySelector('.profileDataDisplay');
if (profileDataDisplay) {
profileDataDisplay.innerHTML = `
<p>Имя: ${result.firstName }</p>
<p>Телефон: ${result.phoneNumber}</p>
<p>Email: ${result.email}</p>
<p>Адрес: ${result.streetAddress}</p>
`;
}
})
.catch((error) => {
console.error(error);
});
}
</script>