PWA userChoice обещание никогда не разрешается - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь реализовать отслеживание выбора пользователя после того, как beforeinstallprompt запущен и мини-информационная панель появляется.Вот фрагмент из MDN на BeforeInstallPromptEvent

window.addEventListener("beforeinstallprompt", function(e) { 
  // log the platforms provided as options in an install prompt 
  console.log(e.platforms); // e.g., ["web", "android", "windows"] 
  e.userChoice.then(function(outcome) { 
    console.log(outcome); // either "accepted" or "dismissed"
  }, handleError); 
});

И это моя реализация, основанная на примере Google

window.addEventListener('beforeinstallprompt', (e) => {
  ga(`${experimentName}.send`, 'speedlink_offer', 'show', 'true');
  e.userChoice.then((choice) => {
    if (choice.outcome === 'accepted') {
      ga(`${experimentName}.send`, 'speedlink_offer', 'click', 'true');
    } else {
      ga(`${experimentName}.send`, 'speedlink_offer', 'close', 'true');
    }
  } );
});

Но обещание userChoice никогда не разрешается.Почему это не разрешается после того, как пользователь нажимает кнопку «Отмена» или «Добавить»?Это ошибка или я что-то упустил?enter image description here

PS.Я обнаружил, что если вы фиксируете действие пользователя (например, щелкните) и выполняете event.prompt(), то userChoice будет разрешено.Но это будет сделано независимо от взаимодействия пользователя с «нативной» мини-информационной панелью Chrome .

PPS.Версия Chrome на моем устройстве Android: 70.0.3538.110

...