首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >触发Beforeinstallprompt事件后,添加到主屏幕不提示

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

Stack Overflow用户
提问于 2019-09-24 21:39:04
回答 3查看 1.1K关注 0票数 2

添加到主屏幕不提示,即使它符合所有的PWA规范,并由on Light House检查。

我已经尝试了下面的代码来检查应用程序是否已经安装。但是appinstalled事件没有被触发,并且beforeinstallprompt提示事件被成功触发。

// appinstalled

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

// beforeinstallprompt提示

代码语言:javascript
复制
  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);
});`
EN

回答 3

Stack Overflow用户

发布于 2019-09-25 18:07:27

从代码中删除此行

代码语言:javascript
复制
event.preventDefault();

从Chrome76开始,preventDefault()停止了自动迷你信息栏的出现

更多详细信息请点击此处

https://developers.google.com/web/fundamentals/app-install-banners/

票数 2
EN

Stack Overflow用户

发布于 2020-05-18 04:31:59

代码语言:javascript
复制
 event.preventDefault(); 

这就是你的问题所在。去掉它。

票数 0
EN

Stack Overflow用户

发布于 2020-10-18 06:03:24

通过删除event.preventDefault(),您将不再能够控制事件!

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

代码语言:javascript
复制
window.addEventListener('beforeinstallprompt', (event) => {
   event.preventDefault();
   deferredPrompt = event;
   
   deferredPrompt.prompt();
   
   deferredPrompt.userChoice.then(result => {
          if(result.outcome === "accepted") {
            // TODO whatever you want to do when the user accept to install the app
          } else {
           // TODO whatever you want to do when the user refuse to install the app
        });
 })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58081643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档