Добавление мобильного веб-приложения на домашний экран с помощью кнопки

1

Я пытаюсь добавить приложение на главный экран с помощью кнопки, расположенной на странице "Настройки" моего мобильного веб-приложения HTML5 (Примечание: он работает, если я пытаюсь добавить его через меню Chrome).

Я установил все эти шаги:

  • PWA не должен быть установлен
  • Веб-приложение должно содержать манифест веб-приложения.
  • Веб-приложение должно обслуживаться через безопасное соединение HTTPS.
  • Веб-приложение зарегистрировало сервис-работника с обработчиком событий выборки.

В настоящее время я отлаживаю его с помощью инструментов Chrome Dev и слушаю перед тем, как beforeinstallprompt этот код из официальных документов.

<script>
let deferredPrompt;

window.addEventListener('beforeinstallprompt', function(event) {
  // Prevent Chrome 67 and earlier from automatically showing the prompt
  e.preventDefault();
  // Stash the event so it can be triggered later.
  deferredPrompt = e;
});

// Installation must be done by a user gesture! Here, the button click
btnAdd.addEventListener('click', (e) => {
  // hide our user interface that shows our A2HS button
  btnAdd.style.display = 'none';
  // 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;
    });
});

</script>

Как поймать событие на /home странице и передать его на страницу /settings чтобы я мог запустить событие через (onClick) событие?

В настоящее время я использую:
Угловая CLI: 6.1.4
Узел: 8.11.4
ОС: win32 x64

  • 0
    Содержит ли ваш манифест следующее: short_name, name, start_url, значок размером 192x192? У вас есть все другие требования к приложению, но есть другое требование в отношении пользователя: получать посещения как минимум дважды, с разницей между посещениями не менее пяти минут. Для того, чтобы опция появилась. ссылка
  • 0
    Да, все настроено правильно. Я попытался запустить Lighthouse, и у меня получился результат: «Пользователю может быть предложено установить веб-приложение», поэтому я думаю, что все в порядке. Мой вопрос заключается в том, как передать это событие между двумя разными страницами.
Показать ещё 1 комментарий
Теги:
angular
service-worker
progressive-web-apps

1 ответ

0

Сохраните его в глобальном (window) объекте (или где-то еще с глобальным доступом) и в window /settings в вызове обработчика события window.deferredPrompt.prompt()?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню