Угловой сайт для iPadOS без обслуживающего персонала? - PullRequest
0 голосов
/ 18 октября 2019

Итак, для начала моя цель - выполнить 2 вещи, на iPad скрыть хром и иметь прикрепляемый значок для моего веб-приложения.

Я начал изучать 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, так как это приложение предназначено для работы в закрытой локальной сети. Итак, мой первый вопрос: возможно ли достичь моих 2 целей без обслуживающего персонала?

Когда я запускаю это на отлаженном угловом сервере, (ng serve hub-app --host=0.0.0.0 --prod) я могу получить сайт на моем ipad, прикрепить его и запустить на нем, все работает отлично. (обратите внимание, я знаю, что pwa работает через http только на локальном хосте, но, как ни странно, когда мой ipad подключается к моей машине разработчика, он не использует адрес локального хоста и, кажется, работает нормально. Даже при передаче флага --prod) Если установить наш продукт,и попробуйте сделать то же самое, сайт просто сидит и ничего не делает, кажется, что угловое время выполнения никогда не запускается. но я заметил, что в угловых скриптах есть тег 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 сценарии никогда не запускаются

...