PWA: предотвращение, по умолчанию не работающее перед установкой - PullRequest
0 голосов
/ 03 ноября 2018

Я тестирую Chrome 70 на устройстве Android, которое должно прекрасно отображать подсказку AddToHomescreen. Я не могу предотвратить запрос или захват для дальнейшего использования. Подсказка продолжает отображаться при каждой загрузке страницы.

Текстовое поле заполнено и показывает, что загружается событие beforeinstallprompt. warnDefault на обработчике событий не предотвращает приглашение.

Почему ??????

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <meta name="theme-color" content="#eaa103">
    <link rel="manifest" href="/pwa/manifest.json" />
    <title>Some App</title>
    <link rel="stylesheet" href="/pwa/css/bootstrap.min.css" />
    </head>
    <body>

    <div class="container">
        <testbox></testbox>
    </div>

    <script src="/pwa/js/jquery.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js">

    </script>

    <script>
    var deferredPrompt;
    window.addEventListener('beforeinstallprompt', function(e) {
        // Prevent Chrome 67 and earlier from automatically showing the prompt
        e.preventDefault();
        // Stash the event so it can be triggered later.
        deferredPrompt = e;
        $("testbox").html("beforeinstallprompt loaded");
        return false;
    }); 
    </script>

    </body>
    </html>

1 Ответ

0 голосов
/ 11 февраля 2019

Согласно этой статье от разработчиков Google: https://developers.google.com/web/updates/2018/06/a2hs-updates:

Начиная с Chrome 68 [...] мини-инфобар показывается независимо от того, был ли вызван preventDefault() для события beforeinstallprompt

Таким образом, в настоящее время разработчик не может заблокировать баннер на странице в мобильной версии Chrome> 67 (он работает на настольном компьютере и в старых мобильных версиях <68). </p>

Здесь немного больше информации: https://developers.google.com/web/fundamentals/app-install-banners/. Как указано:

Мини-инфобар - это временный опыт для Chrome на Android

Если пользователь отклонил его, он не будет отображаться, пока не пройдет достаточный период времени (~ 3 месяца).

Надеюсь, это поможет.

...