window.caches не определен в Android Chrome, но доступен в Desktop Chrome
Я немного запутался в отношении доступности Caches API на мобильных устройствах.
https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage
В документации говорится, что этот API доступен как в области работника сервиса, так и в области окна.
Я могу легко получить доступ к нему на настольном Chrome без проблем.
Теперь, когда я определяю функции в Android Chrome, я получаю неопределенность, как будто эта функция недоступна.
Я пытался обнаружить это так:
if ('caches' в окне)... if ('caches' в self)... вызов из журнала консоли через подключенное устройство и т. д.
Что мне не хватает?
PS: Я понимаю, что Safari имеет очень простую реализацию, поэтому я ожидал, что с Safari все пойдет не так, но здесь я тестирую его с Chrome на Android;/
0 ответов
Похоже, что это window.caches
(CacheStorage) доступен только на мобильном устройстве Chrome, если страница обслуживается через SSL.
Я тестирую свое прогрессивное веб-приложение (PWA), содержащее Service-Worker для кэширования и файл манифеста.
При обслуживании PWA через HTTP через LAN window.caches
не доступен. Когда обслуживается через доменное имя с включенным SSL,window.caches
доступен и ведет себя так же, как в настольной версии Chrome. Не имеет значения, запускаете ли вы его на вкладке браузера или автономно (при добавлении на домашний экран).
Изменить: на самом деле такое же поведение применяется и к Chrome на рабочем столе. Кеширование в моем приложении работало только потому, что я тестировал "localhost" или 127.0.0.1. На любом другом домене / IP-адресе кеширование запрещается, если не используется ssl.