在触发Beforeinstallprompt事件后,不提示添加到主屏幕

时间:2019-09-24 13:39:03

标签: manifest service-worker progressive-web-apps beforeinstallprompt

添加到主屏幕后,即使其符合所有PWA规范并在灯塔​​上进行了检查,也不会出现提示。

我尝试了以下代码来检查应用程序是否已安装。但是未触发appinstalled事件,并且成功触发了installprompt事件。

//已安装应用

window.addEventListener('appinstalled', (evt) => { app.logEvent('a2hs', 'installed'); });

// beforeinstallprompt

  window.addEventListener('beforeinstallprompt', (event) => {
   event.preventDefault();
   deferredPrompt = event;
 });```

// manifest.json

`{
    "name": "demo",
    "short_name": "demo",
    "icons": [{
            "src": "/static/public/icon/icon-192x192.png",
            "sizes": "512x512",
            "type": "image/png"
        },
        {
            "src": "/static/public/icon/icon-512x512.png",
            "sizes": "192x192",
            "type": "image/png"
        }
    ],
    "start_url": "/",
    "orientation": "portrait",
    "display": "standalone",
    "theme_color": "#085689",
    "background_color": "#085689",
    "gcm_sender_id": "103xx3xxx50x",
    "gcm_user_visible_only": true
}
`

// service worker

`self.addEventListener('fetch', (event) => {
    console.log('event', event);
});`

3 个答案:

答案 0 :(得分:2)

从代码中删除此行

event.preventDefault();

从Chrome 76开始,preventDefault()阻止了自动显示迷你信息栏

更多详细信息
https://developers.google.com/web/fundamentals/app-install-banners/

答案 1 :(得分:0)

 event.preventDefault(); 

这引起了您的问题。删除它。

答案 2 :(得分:0)

通过删除Lemma plus_assoc : forall x y z, x + y + z = x + (y + z).,您将不再控制该事件!

我建议一种精简的方式来控制事件,并获取有关安装的信息,请尝试以下代码:

event.preventDefault()