Использование манифеста веб-приложения для интеграции PWA в ОС
Прогрессивное веб-приложение (PWA) должно иметь манифест веб-приложения, чтобы определить, как PWA интегрируется с операционной системой (ОС). В этой статье объясняется, что такое манифест веб-приложения, а также какие необходимые и необязательные данные содержатся в манифесте веб-приложения.
Файл манифеста веб-приложения определяет, как выглядит и ведет себя PWA при установке на устройстве. Манифест веб-приложения содержит такие сведения, как имя приложения, расположение файлов значков, представляющих приложение в системных меню, и цвета темы, которые ос использует в строке заголовка.
Манифест веб-приложения — это JSON-файл, на который необходимо ссылаться на HTML-страницу веб-сайта с помощью ссылки манифеста. Вставьте следующий код между <head>
тегами и </head>
HTML-страницы веб-сайта, чтобы связать с файлом манифеста:
<link rel="manifest" href="/manifest.json">
Тип файла манифеста веб-приложения
Содержимое манифеста веб-приложения должно быть допустимым JSON, но расширение файла может быть либо .json
или .webmanifest
.
Если вы решили использовать .webmanifest
расширение, убедитесь, что HTTP-сервер обслуживает его с типом application/manifest+json
MIME.
Элементы манифеста
Как минимум файл манифеста должен содержать следующие члены манифеста:
{
"name": "My Sample PWA",
"lang": "en-US",
"start_url": "/"
}
Ниже приведен пример файла манифеста, содержащего больше элементов:
{
"name": "My Sample PWA",
"lang": "en-us",
"short_name": "SamplePWA",
"description": "A sample PWA for testing purposes",
"start_url": "/",
"scope": "/",
"display": "standalone",
"theme_color": "#2f3d58",
"background_color": "#2f3d58",
"orientation": "any",
"icons": [
{
"src": "/icon512.png",
"sizes": "512x512"
}
]
}
PWA можно настроить еще больше, используя другие члены манифеста, например следующие:
Member | Описание |
---|---|
name |
Имя приложения, используемое операционной системой для отображения рядом со значком приложения. |
short_name |
Его можно использовать для отображения имени приложения, если недостаточно места для name . |
description |
Описание приложения. |
categories |
Список категорий, к которому принадлежит приложение. |
icons |
Массив объектов изображений значков, используемых ОС в разных контекстах. |
screenshots |
Массив объектов изображений снимка экрана, также используемый ОС в разных контекстах. |
start_url |
Предпочтительный URL-адрес, по которому следует перейти при запуске приложения операционной системой. |
scope |
Определяет область навигации для приложения. За пределами этой области посещенная страница возвращается на обычную веб-страницу, а не на PWA. По умолчанию используется значение start_url . |
display |
Как должно выглядеть приложение. Это изменяет объем пользовательского интерфейса браузера, отображаемый пользователю. |
display_override |
Используется для определения предпочтительного отображения для приложения в зависимости от того, что поддерживает устройство. |
theme_color |
Цвет темы по умолчанию для приложения. Это влияет на отображение сайта в ОС. |
background_color |
Цвет фона окна, в котором запускается приложение, перед применением таблицы стилей. |
orientation |
На вспомогательных устройствах это определяет ориентацию приложения по умолчанию (например, альбомную или книжную). |
protocol_handlers |
Список стандартных или настраиваемых схем протоколов URI, с которыми связано приложение. |
shortcuts |
Список распространенных задач, которые пользователи смогут выполнять, щелкнув правой кнопкой мыши или нажав значок приложения. |
share_target |
Тип данных, которые приложение принимает при совместном доступе к содержимому через диалоговое окно общего доступа к ОС. |
file_handlers |
Тип файлов, с которыми можно запустить приложение. |
Дополнительные сведения о членах манифеста см. в разделе Манифесты веб-приложения на сайте MDN.
Обработка определенных схем протокола
Вы можете зарегистрировать PWA в качестве обработчика протокола. Когда пользователь щелкает ссылку, которая использует схему протокола, в которую зарегистрировано приложение, приложение запускается автоматически. Это позволяет пользователям легко обмениваться ссылками на определенные части или функции приложения друг с другом.
Чтобы зарегистрироваться в качестве обработчика протокола, используйте член манифеста protocol_handlers
:
{
"protocol_handlers": [
{
"protocol": "mailto",
"url": "/newEmail?to=%s"
}
]
}
Дополнительные сведения см. в статье Обработка протоколов в прогрессивных веб-приложениях.
Использование сочетаний клавиш для быстрого доступа к функциям
Большинство операционных систем обеспечивают быстрый доступ к ключевым функциям приложения с помощью сочетаний клавиш в контекстном меню, подключенном к значку приложения. Чтобы использовать ярлыки в PWA, добавьте shortcuts
участника в манифест веб-приложения.
В следующем коде показано, как определить ярлык в манифесте веб-приложения.
"shortcuts": [
{
"name": "Play Later",
"description": "View the list of podcasts you saved for later",
"url": "/play-later",
"icons": [
{
"src": "/icons/play-later.svg",
"type": "image/svg+xml",
"purpose": "any"
}
]
},
{
"name": "Subscriptions",
"description": "View the list of podcasts available in your subscription",
"url": "/subscriptions?sort=desc"
}
]
Дополнительные сведения см. в статье Определение ярлыков приложений.
Определение приложения в качестве целевого объекта общего доступа
Чтобы пользователи могли быстро обмениваться ссылками и файлами с собственными приложениями, используйте share_target
объект в манифесте веб-приложения. Страница action
похожа на форму. В объекте share_target
вы определяете страницу action
и параметры, которые должны быть переданы на страницу action
.
"share_target": {
"action": "/share.html",
"params": {
"title": "name",
"text": "description",
"url": "link"
}
}
Указанный выше share_target
объект устанавливается /share.html
в action
качестве страницы для общей папки. В этом примере также определяются три параметра, которые будут переданы на эту action
страницу: title
, text
и url
.
Дополнительные сведения об использовании функции "Общий доступ к целевому объекту" см. в статье Предоставление общего доступа к содержимому другим приложениям.
Связывание приложения с файлами
Если PWA зарегистрирован в качестве обработчика файлов определенных типов, операционная система может автоматически запускать приложение, когда эти файлы открываются пользователем, аналогично тому, как Microsoft Word обрабатывает .docx
файлы. PWA, обрабатывающие файлы, чувствуют себя более собственными для пользователей и лучше интегрированы в операционную систему.
Для обработки файлов выведите список типов и расширений mime файлов, с которыми должно быть связано приложение, и определите URL-адрес, с помощью которого должно быть запущено приложение:
{
"file_handlers": [
{
"action": "/openFile",
"accept": {
"text/*": [
".txt"
]
}
}
]
}
Затем обработайте файлы с помощью window.launchQueue()
метода :
if ('launchQueue' in window) {
launchQueue.setConsumer(launchParams => {
// Do something with launchParams.files ...
});
}
Дополнительные сведения см. в статье Обработка файлов в прогрессивных веб-приложениях.