Как я могу использовать Web App Manifest и Application Cache одновременно?
Я пытаюсь создать простую отдельную HTML-страницу, которую можно запускать в автономном режиме (на Android, если это имеет значение).
Я использую Манифест веб-приложения, чтобы дать приложению имя для добавления на домашний экран и отображения в полноэкранном режиме без браузера Chrome. Это много работает.
<!DOCTYPE html>
<html>
<head>
<link rel="manifest" href="mf.webmanifest">
<meta name="mobile-web-app-capable" content="yes">
</head>
...
</html>
Похоже, что это не кэшируется в автономном режиме. Отдельно я могу сделать страницу, которая кэшируется в автономном режиме, используя кеш приложения:
<!DOCTYPE html>
<html manifest="mf.appcache">
<head>
<meta name="mobile-web-app-capable" content="yes">
</head>
...
</html>
Однако, когда я пытаюсь объединить эти два (чтобы у меня была страница с кэшированием в автономном режиме, которая запускает полноэкранный режим), Манифест веб-приложения игнорируется, и я получаю только автономное поведение, как во втором примере.
В конечном итоге мне нужна отдельная страница, которая может быть добавлена на домашний экран, которая открывается в полноэкранном режиме без использования браузера / операционной системы Chrome и кэшируется для использования в автономном режиме. Решение, которое работает только на Android с использованием Chrome 65, является приемлемым.
2 ответа
Функция Service Workers предоставляет те же возможности, что и устаревший кэш приложений.
В MDN есть статья об использовании сервисных работников, которая мне показалась очень полезной при реализации того, что мне нужно для замены кэша приложений.
Это интересная дилемма! Интересно, если вам повезет, используя<link rel="manifest" href="/manifest.json">
как описано Google. Вот ссылка на их рекомендации для манифеста веб-приложения.
Метатег Web App Capable предназначен в первую очередь для полноэкранных возможностей. Если вы хотите, чтобы кэширование специально, я думаю, используя http-equiv="cache-control"
Тег заголовка и его директивы ближе к тому, что вы пытаетесь достичь. Тем более, что работники сферы обслуживания пока не получили глобальной поддержки. Я нашел приличное объяснение кеширования HTML здесь, в стеке: "Как установить заголовки HTTP для контроля кэша".
Изменить: другой пользователь указал, что Chrome не будет учитывать этот тег, если в файле манифеста настроено отображение