javascript - Chrome 无法安装 Progressive Web App

标签 javascript html json progressive-web-apps

我用 html 和 javascript 构建了一个单位转换器。我的最后一个问题是使应用程序可安装。但是 chrome 中的按钮没有出现。但是 Service Worker 正在运行,正如我在 chrom 开发工具中看到的那样。我正在使用 Ubuntu 18.04、VS Code 扩展 Live Server 和最新的 chrome 浏览器。我还尝试了 Firefox 和我的智能手机。两者都不起作用。

这是我的 serviceworker.js:

const cacheName = 'Einheitenrechner';
const staticAssets = [
    '/',
    '/index.html',
    '/scripts/app.js',
    '/style/app.css',
    '/manifest.json'
];

self.addEventListener('install',function(event){
    event.waitUntil(
    caches.open(cacheName)
      .then(function(cache) {
        console.log('Opened cache');
        return cache.addAll(staticAssets);
      })
  );
});

self.addEventListener('activate',function(event){
    event.waitUntil(
        caches.keys().then((keyList) => {
          return Promise.all(keyList.map((key) => {
            if (key !== cacheName) {
              console.log('[ServiceWorker] Removing old cache', key);
              return caches.delete(key);
            }
          }));
        })
    );;
    self.clients.claim();
});



self.addEventListener('fetch', async e =>{
    // CODELAB: Add fetch event handler here.
    if (evt.request.mode !== 'navigate') {
    // Not a page navigation, bail.
        return;
    }
    evt.respondWith(
      fetch(evt.request)
          .catch(() => {
            return caches.open(cacheName)
                .then((cache) => {
                  return cache.match('index.html');
                });
          })
  );
});

我的注册器-sw.js:

if ('serviceWorker' in navigator) {
    window.addEventListener('load', () => {
      navigator.serviceWorker.register('scripts/serviceworker.js')
          .then((reg) => {
            console.log('Service worker registered.', reg);
          });
    });
  }

最佳答案

这里没有足够的信息来提供正确的答案。我建议你使用 Chrome 工具来检查它。在“Audits”中有一个 Progressive Web App 检查(也称为 Lighthouse)。如果你运行它,它应该会告诉你你的应用程序是否有任何问题。如果您可以使用结果编辑您的问题,我们中的一个人也许能够提供更好的答案。

关于javascript - Chrome 无法安装 Progressive Web App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56064196/

相关文章:

javascript - 没有在另一个页面上获取 c# webmethod json 字符串

javascript - TensorFlow JS - 加载使用 Python 生成的模型

javascript - D3 - 使用字符串作为轴刻度

javascript - 从现有 JSON 构建新 JSON

javascript - 关闭除事件按钮之外的所有其他 Accordion 按钮

asp.net - html 5 文档类型和更旧的浏览器

html - 特定 Wordpress 菜单项的自定义 CSS

javascript - 如何修复这个 X 按钮

javascript - 如何在 ActionScript 1 中调用 JavaScript 函数?

javascript - jQuery 多操作按钮