Я обновляю свое приложение с AppCache до сервисных работников через рабочий ящик Google.
Результаты:
Chrome
- настройка теста: devtools
- примечания: работает отлично, не тестировал с хромом на андроиде
iPhone:
- тестовая настройка: перевести телефон в режим полета
открыть в браузере: работает довольно хорошо, но показывает собственное всплывающее предупреждение о том, что страница не может быть открыта из-за недоступности сети. Приложение загружается за этим предупреждением и может использоваться после этого.
открыть с домашнего экрана: то же самое собственное всплывающее предупреждение о том, что страница не может быть загружена из-за недоступности сети. Приложение не загружается в фоновом режиме.
Когда я подключаюсь к сети и загружаю приложение с домашнего экрана, он попадает на мой сервер, чтобы получить sw.js и предварительный кэш-манифест, но не захватывает другие ресурсы и , он загружается хорошо.
Итак, почему я больше не могу запустить свое приложение в автономном режиме, когда я запускаю его с домашнего экрана? Это ошибка для сервисных работников, и я должен вернуться к App Cache, или кто-то еще заставил это работать?
Спасибо!
Дальнейшая отладка:
Я подключил devtools Safari к своему iPhone и теперь вижу в консоли следующее:
[Error] Failed to load resource: The Internet connection appears to be offline. (precache-manifest.74ba0448495d9599f20233bb79d47c66.js, line 0)
[Error] Failed to load resource: The Internet connection appears to be offline. (sw.js, line 0)
Итак, он безуспешно пытается загрузить сервисного работника, и это требует предварительного кеширования.
У меня есть другое приложение, которое все еще использует AppCache, и оно показывает аналогичную ошибку, связанную с невозможностью загрузить sw.js, но оно полностью используется (я даже могу запустить его с домашнего экрана, когда мой телефон находится в режиме полета). .