Какое значение следует указать в файле manifest.json атрибута scope при обслуживании Progressive Web App с локального IP-адреса с номером порта?

У меня проблема с областью манифеста веб-приложения на моем локальном тестовом сервере Node JS. Я не могу получить правильную область, потому что номер порта на IP-адресе мешает. Я получаю доступ к своему серверу по следующему адресу:

https://192.168.0.101:2468/

Когда я использую инструменты разработчика Chrome для просмотра моего манифеста, на вкладке "Приложение" отображается URL-адрес файла манифеста: :2468/manifest.json но :2468 это не каталог в моей корневой папке.

Я храню все свои файлы в корневом каталоге, включая server.js, manifest.jsonи индекс, называемый my-app.html

_ website-directory
|_ server.js
|_ manifest.json
|_ my-app.html

В моем файле манифеста у меня есть:

{

  "scope": "./",
  "start_url": "my-app.html"

}

Все отлично работает, когда я загружаю код на свой сайт Github Pages здесь: рабочий пример. Я думаю, что проблема исходит от :2468 за моим IP-адресом. У меня нет этой проблемы с полностью определенным доменным именем, как у меня с Github Pages.

Если я попытаюсь поместить номер порта в область действия манифеста следующим образом:

  "scope": "./:2468/",
  "start_url": "my-app.html"

Это нарушает рамки моего манифеста, и я получаю это предупреждение: Manifest: property 'scope' ignored. Start url should be within scope of scope URL. Что имеет смысл, потому что :2468 это не папка в моем каталоге. Это просто то, что Chrome решил прикрепить к URL моего файла манифеста.

Как мне разрешить область действия моего файла манифеста, чтобы игнорировать номер порта? Почему инструменты разработчика Chrome указывают, что мой манифест находится в :2468 каталог, который не существует?

Причина в том, что мое веб-приложение не открывается в режиме приложения с полноэкранным окном и заставкой. Он открывается только в браузере с адресной строкой и, похоже, вообще не использует манифест приложения.

ОБНОВЛЕНИЕ: 11/05/17

Используя URL https://192.168.0.101:2468/my-app.html Я могу получить доступ к своему веб-приложению без отображения инструментов разработчика :2468/ в моем манифесте URL. Мое приложение устанавливается как на домашний экран, так и в ящик приложения, но оно открывается только в браузере, а не в полноэкранном приложении с заставкой. Я не получаю предупреждений о области действия манифеста, и мой сервисный работник регистрируется и работает отлично. Я начинаю думать, что прогрессивные веб-приложения не могут быть установлены с IP-адреса, а только с полностью определенными доменными именами. Может ли это быть проблемой?

1 ответ

Вы правы, Progressive Web Apps должны быть установлены по несколько правильному URL, потому что они требуют, чтобы эта область работала правильно. Без применения этой области мошенник может получить доступ к сайтам, чего не должен делать.

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