PWA 'Hello World' продолжает сообщать мне об ошибке работника сервиса на вкладке Manifest инструментов dev - не удается установить как приложение - PullRequest
0 голосов
/ 21 января 2020

Я прочитал все, что могу, для работников сферы обслуживания и PWA, и я не могу понять, что я делаю неправильно, я думаю, что это должен быть мой виртуальный каталог в IIS или что-то в этом роде, но я попытался изменить область действия работника службы. регистрация, изменил start_url в манифесте и т. д. c., и, похоже, ничего не работает. Я получаю сообщение об ошибке в инструментах разработчика на вкладке Приложение-> Манифест:

"Невозможно установить сайт: не найден соответствующий работник сервиса. Возможно, вам придется перезагрузить страницу или проверить, что работник сервиса для текущая страница также управляет начальным URL-адресом из манифеста "

. Я создал нетронутое приложение в IIS под названием TestWeb и могу перейти на страницу" hello world "по адресу https://localhost/TestWeb/ * 1008. *

Все файлы js и манифест находятся в root сайта. В заголовке страницы у меня есть:

 <link rel="manifest" href="Manifest.json">

, и это указывает на файл json в root сайта следующим образом:

{
  "dir": "ltr",
  "lang": "en",
  "name": "xxxx",
  "scope": "/",
  "display": "standalone",
  "start_url": ".",
  "short_name": "xxxx",
  "theme_color": "#ffffff",
  "description": "",
  "orientation": "any",
  "background_color": "transparent",
  "related_applications": [],
  "prefer_related_applications": false,
  "icons": [
    {
      "src": "Images/AppIcons/windows10/Square71x71Logo.scale-400.png",
      "sizes": "284x284"
    },
    etc...

Для область действия манифеста, я пробовал "./", "/", "/ TestWeb /", "/ TestWeb" и др. c .. Когда документ готов, я вызываю эту функцию:


    if ("serviceWorker" in navigator) {

        if (navigator.serviceWorker.controller) {
            console.log("Active service worker found, no need to register");
        } else {
            // Register the service worker
            navigator.serviceWorker
                .register("ServiceWorkerRegister.js", {
                    scope: "./"
                })
                .then(function (reg) {
                    console.log("Service worker has been registered for scope: " + reg.scope);

                });
                //.catch(err => console.log(err));

        }
    } 

}

Для этой области я попытался "./", "/", "/ TestWeb /", "/ TestWeb" и др. c ..

Работник службы успешно активирует и запущен, но в браузере нет кнопки «Добавить», и, переходя к «Приложению» - «Manfiest» в инструментах разработчика, я получаю сообщение об ошибке: «Нет соответствующего работника службы». Я пытался обновить несколько раз.

Я в тупике, кто-нибудь знает что-нибудь еще, чтобы попробовать?

1 Ответ

0 голосов
/ 22 января 2020

Чтобы получить приглашение на установку, ваш исходный код должен иметь этот файл (ServiceWorkerRegister. js), по крайней мере, с прослушивателем событий для извлечения, а также с другими требованиями к установке.

...