第五章 观感
5.1 Web 应用清单
Web 清单文件是简单的 JSON 文件,描述了应用相关的有用信息(名称、作者、图标和描述等),可使用户将 Web 应用安装到设备的主屏幕上,允许开发者自定义启动页面、模板颜色、URL。
1 | { |
- name:用作当提示用户安装应用时出现的文本。
- short_name:用作当应用安装后出现在用户主屏幕上的文本。
- start_url:决定了当用户从设备的主屏幕开启 Web 应用时所出现的第一个页面。
- 根据构建的 Web 应用类型,可能需要预设如何首次加载。display 字段表示开发者希望他们的 Web 应用如何向用户展示。
- 通过使用 theme_color 字段,可以对浏览器的地址栏进行着色,以符合网站的主色调。
- icons 字段决定了当把 Web 应用添加到设备主屏幕上时所显示的颜色。
在页面中引入清单文件:
1 | <link rel="manifest" href="/manifest.json"> |
5.2 添加到主屏幕
要显示添加到主屏幕,需要满足几个条件:
- 需要 manifest.json 文件
- 清单文件需要启动 URL
- 需要 144 x 144 像素的 PNG 图标
- 网站必须使用通过 HTTPS 运行的 Service Worker
- 用户至少需要访问过网站两次,并且两次访问间隔在 5min 之上(浏览器内置的条件,确保该功能不会引起用户反感)
5.2.1 定制图标
1 | "icon": [ |
5.2.2 添加启动画面
用户单击主屏幕上 Web 应用的图标后,在浏览器渲染页面的第一帧,将显示一个临时的“启动页面”。启动页面的内容是根据清单文件生成的。主要用到 name、background_color、icon 几个属性。
5.2.3 设置启动样式和 URL
显示模式决定了你想如何在用户的设备上呈现你的 Web 应用,启动 URL 是用户单击主屏幕图标时将到达的第一个页面。
start_url
用来指定当用户从设备启动应用时加载的 URL。如果给定的是相对路径,那么基础路径就是清单的路径。
显示模式表示 Web 应用在操作系统环境中的展现方式:
- fullscreen:打开 Web 应用并占用整个可用的显示区域
- standalone:打开 Web 应用以看起来像一个独立的原生应用。用户代理将排除诸如 URL 栏等标准浏览器 UI 元素,但可以包括诸如状态栏和系统返回按钮的其他系统 UI 元素。
- minimal-ui:类似 fullscreen,但为用户提供了可访问的最小 UI 元素集合,例如后退按钮、前进按钮、重载按钮以及查看网页地址的一些方式。
- browser:使用操作系统内置的标准浏览器打开 Web 应用。
display
是可选项,默认以 browser 模式来显示。
5.3 添加到主屏幕的高级用法
5.3.1 取消提示
如果不希望显示添加到主屏幕操作栏,可以取消该操作。
1 | window.addEventListener('beforeinstallprompt', function (e) { |
5.3.2 判断使用情况
通过监听 beforeinstallprompt
事件,可以判断出用户是否决定添加 Web 应用到主屏幕或者直接关掉提示。
1 | window.addEventListener('beforeinstallprompt', function (event) { |
5.3.3 推迟提示
结合以上代码使得用户可以控制是否要添加网站,而不是浏览器决定何时显示操作栏。
1 | var btnSave = document.getElementById('btnSave') |
5.4 调试清单文件
Chrome 开发者工具的 Application 标签中,有 Manifest 菜单可快速有效查看和调整。