第二次尝试在主屏幕中添加 Web 应用时提示不起作用

Prompt not working second time trying to add web app in Home Screen

尝试在 chrome 最新浏览器的主屏幕中添加网络应用程序,第一次访问正常但第二次无法正常工作,这意味着没有提示消息:

下面是我的代码:

  1. 创建了有效清单json

  2. 在 index.html 中包含清单文件

  3. 并创建了服务-worker.js

    self.addEventListener('fetch', function(event) {
          event.respondWith(
            caches.match(event.request).then(function(response) {
              if (response) {
                return response;
              }          
              return fetch(event.request).then(function(response) {
                return response;
              }).catch(function(error) {
                throw error;
              });
            })
          );
        });
    
  4. 在 html 页面注册 service worker

    if ('serviceWorker' in navigator) {
        console.log("Will the service worker register?");
        navigator.serviceWorker.register('service-worker.js')
          .then(function(reg){
            console.log("Yes, it did.");
          }).catch(function(err) {
            console.log("No it didn't. This happened: ", err)
          });
      }
    

场景:

  1. 第一次打开网页,显示添加屏幕提示

  2. 添加到主屏幕

  3. 卸载主屏幕页面

  4. 我尝试再次点击网页,没有显示添加屏幕提示

主屏幕上的图标只是 chrome 浏览器的快捷方式,添加了各种风格(全屏、闪屏、方向等)。所以从技术上讲,您只是删除了快捷方式而不是应用程序。

如果您点击烤肉串图标 > 信息图标 > 网站设置,您将能够看到 chrome 仍将其保存在设备中。真正 uninstall/delete 的唯一方法是单击“清除并重置”按钮,这会使 chrome 认为该站点是第一次访问。

我认为 "issue" 是 chrome 团队在浏览器中实现的一个很好的功能。通过 "uninstalling",PWA 也会清除并重置它。