改造网站支持 Progressive Web Apps (PWA),改善移动端体验。
主要分成一下几步:
- 开启全站 HTTPS
- Service Worker
- Web App Manifest
Service Worker
检测当前的浏览器是否支持 Service Worker
调试 Service Worker,可以在 Chrome 开发者选项 Application 看到 Service Worker.
创建 sw.js
并注册
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
navigator.serviceWorker.register('/sw.js');
//navigator.serviceWorker.ready always resolve
navigator.serviceWorker.ready.then(function (registration) {
console.log('Service worker successfully registered on scope', registration.scope);
});
});
}
</script>
关于 sw.js
比较复杂, 可以参考文末 Google 的文档。
Manifest
manifest 属性
- name —— 网页显示给用户的完整名称
- short_name —— 当空间不足以显示全名时的网站缩写名称
- description —— 关于网站的详细描述
- start_url —— 网页的初始 相对 URL(比如 /)
- scope —— 导航范围。比如,/app/ 的 scope 就限制 app 在这个文件夹里。
- background-color —— 启动屏和浏览器的背景颜色
- theme_color —— 网站的主题颜色,一般都与背景颜色相同,它可以影响网站的显示
- orientation —— 首选的显示方向:any, natural, landscape, landscape-primary, landscape-secondary, portrait, portrait-primary, 和 portrait-secondary。
- display —— 首选的显示方式:fullscreen, standalone (看起来像是 native app),minimal-ui (有简化的浏览器控制选项) 和 browser (常规的浏览器 tab)
- icons —— 定义了 src URL, sizes 和 type 的图片对象数组,用来定义 PWA 的 icon。
页面中添加 manifest.json 使之生效。
<link rel="manifest" href="/manifest.json">
这里 可以生成 manifest 和不同尺寸的 icon
Test
部署后可以测试一下