Итак, для начала моя цель - выполнить 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
сценарии никогда не запускаются