Автозаполнение формы в браузере 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 шт):

Автор решения: Alexandr Gootman

Нашел решение этот простенький код без 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>

→ Ссылка