PWA: как перезапустить beforeinstallprompt?
наш сайт использует PWA, чтобы посетитель мог добавить на главный экран (A2HS). Однако, по данным Google Analytics, уровень увольнения слишком высок по сравнению с уровнем принятия.
мы планируем сделать UX более интуитивным и ясным, чтобы улучшить скорость приема. Однако мы также хотим оживить тех посетителей, которые уже отклонили диалог A2HS.
Как это сделать? Насколько мне известно, мы можем только добавить beforeinstallprompt
слушатель, но нет openinstallprompt
метод.
3 ответов
нет, вы не можете запустить баннер установки и его привод от браузеров. Если ваш сайт соответствует всем критериям PWA и если пользователь посещает его достаточно часто(насколько часто, явно не указано поставщиками браузеров), браузеры снова покажут приглашение. Мы не можем запустить то же самое с нашим кодом. обратитесь к этому ответу о том, почему он ведет себя таким образом, и что альтернативное решение.
ответ Ананда пока верен. Но начиная с Chrome 68, Chrome не будет автоматически показывать приглашение A2HS. Вам нужно будет явно сказать Chrome, чтобы вызвать приглашение.
согласно документации Google, Вот фрагмент кода для обработки запроса;
слушать beforeinstallprompt
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
// Prevent Chrome 67 and earlier from automatically showing the prompt
e.preventDefault();
// Stash the event so it can be triggered later.
deferredPrompt = e;
});
вставьте следующий код в прослушиватель, который вызовет строки
// Show the prompt
deferredPrompt.prompt();
// Wait for the user to respond to the prompt
deferredPrompt.userChoice
.then((choiceResult) => {
if (choiceResult.outcome === 'accepted') {
console.log('User accepted the A2HS prompt');
} else {
console.log('User dismissed the A2HS prompt');
}
deferredPrompt = null;
});
Refer этой ссылке для получения дополнительной информации.
по соображениям безопасности, как и другие написали, браузеры не позволяют вручную запускать событие установки.
тем не менее, есть способ проверить это самостоятельно. Перейдите в chrome: / / flags и включите "обход проверок взаимодействия пользователей"
Это запустит приглашение, чтобы вы могли проверить.
Ура