Web App Manifest
ÐкÑпеÑименÑалÑÐ½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ: ÐÑо ÑкÑпеÑименÑалÑÐ½Ð°Ñ ÑеÑ
нологиÑ
Так как ÑпеÑиÑикаÑÐ¸Ñ ÑÑой ÑеÑ
нологии еÑÑ Ð½Ðµ ÑÑабилизиÑовалаÑÑ, ÑмоÑÑиÑе ÑаблиÑÑ ÑовмеÑÑимоÑÑи по Ð¿Ð¾Ð²Ð¾Ð´Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² ÑазлиÑнÑÑ
бÑаÑзеÑаÑ
. Также замеÑÑÑе, ÑÑо ÑинÑакÑÐ¸Ñ Ð¸ поведение ÑкÑпеÑименÑалÑной ÑеÑ
нологии Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑÑÑ Ð² бÑдÑÑиÑ
веÑÑиÑÑ
бÑаÑзеÑов, вÑлед за изменениÑми ÑпеÑиÑикаÑии.
ÐаниÑеÑÑÑ Ð²ÐµÐ±-пÑиложений ÑвлÑÑÑÑÑ ÑаÑÑÑÑ Ð½Ð°Ð±Ð¾Ñа веб-ÑÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸Ð¹, назÑваемÑÑ Ð¿ÑогÑеÑÑивнÑми веб-пÑиложениÑми (PWA, progressive web apps), пÑедÑÑавлÑÑÑими Ñобой веб-ÑайÑÑ, коÑоÑÑе можно ÑÑÑановиÑÑ Ð½Ð° домаÑний ÑкÑан ÑÑÑÑойÑÑва без магазина пÑиложений. РоÑлиÑие Ð¾Ñ Ð¾Ð±ÑÑнÑÑ Ð²ÐµÐ±-пÑиложений Ñ Ð¿ÑоÑÑÑми ÑÑÑлками на домаÑний ÑкÑан или закладками, PWA можно загÑÑжаÑÑ Ð·Ð°Ñанее и ÑабоÑаÑÑ Ð² авÑономном Ñежиме, а Ñакже иÑполÑзоваÑÑ Ð¾Ð±ÑÑнÑе must be provided.
ÐаниÑеÑÑ Ð²ÐµÐ±-пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿ÑедоÑÑавлÑÐµÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ пÑиложении в ÑекÑÑовом Ñайле JSON, коÑоÑÑй Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ Ñого, ÑÑÐ¾Ð±Ñ Ð²ÐµÐ±-пÑиложение бÑло загÑÑжено и оÑобÑажалоÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñно наÑÐ¸Ð²Ð½Ð¾Ð¼Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (напÑимеÑ, Ð´Ð»Ñ ÑÑÑановки на домаÑний ÑкÑан ÑÑÑÑойÑÑва, пÑедоÑÑавлÑÑÑий полÑзоваÑелÑм более бÑÑÑÑÑй доÑÑÑп и болÑÑе возможноÑÑей).
СодеÑжимое маниÑеÑÑа
ÐаниÑеÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ ÑледÑÑÑие ÑлеменÑÑ:
ÐÑÐ¸Ð¼ÐµÑ Ð¼Ð°Ð½Ð¸ÑеÑÑа
{
"name": "HackerWeb",
"short_name": "HackerWeb",
"start_url": ".",
"display": "standalone",
"background_color": "#fff",
"description": "A simply readable Hacker News app.",
"icons": [
{
"src": "images/touch/homescreen48.png",
"sizes": "48x48",
"type": "image/png"
},
{
"src": "images/touch/homescreen72.png",
"sizes": "72x72",
"type": "image/png"
},
{
"src": "images/touch/homescreen96.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "images/touch/homescreen144.png",
"sizes": "144x144",
"type": "image/png"
},
{
"src": "images/touch/homescreen168.png",
"sizes": "168x168",
"type": "image/png"
},
{
"src": "images/touch/homescreen192.png",
"sizes": "192x192",
"type": "image/png"
}
],
"related_applications": [
{
"platform": "web"
},
{
"platform": "play",
"url": "https://play.google.com/store/apps/details?id=cheeaun.hackerweb"
}
]
}
ÐнедÑение маниÑеÑÑа
ÐаниÑеÑÑ Ð²ÐµÐ±-пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ð½ÐµÐ´ÑÑеÑÑÑ Ð² ваÑÑ HTML-ÑÑÑаниÑÑ, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ñега ÑÑÑлки в заголовке ваÑего докÑменÑа:
<link rel="manifest" href="/manifest.webmanifest" />
РаÑÑиÑение .webmanifest ÑказÑваеÑÑÑ Ð² Ñазделе ÑпеÑиÑикаÑии Media type registration section of the specification (оÑÐ²ÐµÑ Ñайла маниÑеÑÑа должен возвÑаÑаÑÑ Content-Type: application/manifest+json). ÐÑаÑзеÑÑ Ð¾Ð±ÑÑно поддеÑживаÑÑ Ð¼Ð°Ð½Ð¸ÑеÑÑÑ Ñ Ð´ÑÑгими ÑооÑвеÑÑÑвÑÑÑими ÑаÑÑиÑениÑми, Ñакими как .json (Content-Type: application/json).
ÐÑли Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¼Ð°Ð½Ð¸ÑеÑÑа ÑÑебÑÑÑÑÑ ÑÑÑÑнÑе даннÑе, Ñо аÑÑибÑÑ crossorigin должен имеÑÑ Ð·Ð½Ð°Ñение "use-credentials", даже еÑли Ñайл маниÑеÑÑа наÑ
одиÑÑÑ Ð² Ñом же иÑÑоÑнике, ÑÑо и ÑекÑÑÐ°Ñ ÑÑÑаниÑа.
ÐаÑÑавки
Ð Chrome 47 и более поздниÑ
веÑÑиÑÑ
заÑÑавки оÑобÑажаÑÑÑÑ Ð¿Ñи загÑÑзке веб-пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ Ð´Ð¾Ð¼Ð°Ñнего ÑкÑана. ÐÑи заÑÑавки авÑомаÑиÑеÑки генеÑиÑÑÑÑÑÑ Ñ Ð¸ÑполÑзованием ÑвойÑÑв, ÑказаннÑÑ
в маниÑеÑÑе пÑиложениÑ, напÑимеÑ: name, background_color и иконки в маÑÑиве icons, коÑоÑÑе ближе к 128dpi Ð´Ð»Ñ ÑÑÑÑойÑÑва.