Как я могу использовать 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 не будет учитывать этот тег, если в файле манифеста настроено отображение

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