Угловой сайт для закрепления iPadOS без сервис-воркеров?

Для начала моя цель - выполнить две задачи:

  1. На iPad скройте хром и
  2. У моего веб-приложения есть закрепляемый значок.

Я начал изучать PWA и файлы манифеста, которые казались многообещающими, но это привело к работникам служб, возможностям установки, HTTP и т. Д. Чуть больше, чем мне нужно, но я пошел дальше, создал файл манифеста и теперь обслуживаю этот файл,

<link rel="manifest" href="./assets/manifest.json" />

Я пытаюсь указать минимальную сумму. Смотри ниже:

{
  "name": "company some cool app",
  "short_name": "some cool app",
  "theme_color": "#0053a1",
  "background_color": "#313b49",
  "display": "standalone",
  "scope": "/",
  "start_url": "/",
  "icons": [
    {
      "src": "./icons/icon-144x144.png",
      "sizes": "153x144",
      "type": "image/png"
    }
  ]
}

Примечание. В итоге у меня появилось два метатега Apple для значков приложений; например,

<link rel="apple-touch-icon" href="./assets/icons/apple/icon.png" />```

Мое приложение обслуживается с веб-сайта ASP.NET Core, но мне действительно не нужен и не нужен HTTPS, так как это приложение предназначено для работы в закрытой локальной сети. Итак, мой первый вопрос: возможно ли достичь двух моих целей без обслуживающего персонала?

Когда я запускаю это, с сервером отладки Angular (ng serve hub-app --host=0.0.0.0 --prod), Я могу зайти на сайт на своем iPad, прикрепить его и запустить, и все работает нормально.

Примечание: я знаю, что PWA работает по HTTPS наlocalhost только, но как ни странно, когда мой iPad попадает на мою машину разработки, он не использует localhost адрес, и, похоже, он работает нормально - даже при передаче --prod флаг.

Если я устанавливаю наш продукт и пытаюсь сделать то же самое, сайт просто сидит и ничего не делает. Кажется, что среда выполнения Angular никогда не запускается. Но потом я заметил, что скрипты Angular имеютdefer тег:

<script src="runtime.1055bb5ba2e788f506b9.js" defer></script>
<script src="polyfills.34c0c6140312ee9a4a8f.js" defer></script>
<script src="main.67d9d64f0328fe5849f5.js" defer></script></body>

Если я удалю их из встроенной версии, мое приложение загрузится! Так что мой вопрос: почему они никогда не бегают? Я знаю, что они должны запускаться, когда страница загружается, но я не могу понять, почему они никогда не запускаются. Еще я пытаюсь подтвердить, действительно ли это проблема HTTPS и работы сервера?

По умолчанию в моем app.module, Я закомментировал следующее:

// ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }),

Я пробовал установить enabled: false, но без изменений.

Я подключил iPad к MacBook для отладки с помощью Safari, и, насколько я могу судить, на консоль не выводится никаких ошибок. Индексная страница загружается нормально, и это то, что я ожидал, но, как я уже сказал выше, это похоже наdefer скрипты никогда не запускаются.

0 ответов

Другие вопросы по тегам