PWA应用|轻应用
PWA应用|轻应用
MeteorCat如果 Chrome 浏览器版本比较新就可以直接让其安装到桌面上作为应用来处理:
无论手机还是桌面浏览器都能将网页安装到桌面从而变成 APP 来使用.
这里实现的方法其实十分简单, 只需要在 html 页面上追加 manifest 声明网页元数据:
1 | <head> |
这里的 manifest.json 就是声明 PWA 的 JSON 格式配置文件, 实际上就是相当于调用本地浏览器的 Web 应用入口,
也就是 轻应用 的概念的由来, 无须复杂的桌面|移动端开发来构建的应用.
manifest.json 配置是所有浏览器通用的, 这里提供 Mozilla
的官方说明: Mozilla Manifest
配置的样例如下:
1 | { |
这里挑选需要说明的配置讲解:
name: 应用名称, 安装之后显示的应用名称short_name: 短名, 在名称过长的时候展示的缩略名称start_url: 启动的应用路径, 支持网页路径和本地相对路径, 这里地址可以追加?utm_source=pwa识别启动的地址description: 应用详情信息, 可以显示应用具体描述信息, 可有可无的添加项theme_color: 启动时的边框和页面主题色, 用于让应用颜色让更加贴合应用内部, 可有可无的添加项display: 启动时候的显示方式, 常规采用standalone处理, 具体显示模式:fullscreen: 启动时候应用采用全屏覆盖屏幕, 注意他会尽可能隐藏浏览器UI并让内容填充屏幕standalone: 启动时候象独立应用一样屏蔽隐藏掉本来浏览器的界面(导航栏、工具栏等), 让其更类似独立应用minimal-ui: 和standalone类似, 但是不同的是他会尽可能UI缩小成按钮, 不同浏览器会呈现不同显示效果browser: 浏览器默认配置, 启动时候和打开浏览器一致
orientation: 应用的显示方向, 桌面应用感知不到, 但是移动端有竖屏和横屏应用来处理(还有平板电脑之类), 具体显示方向:landscape-primary|landscape-secondary: 横屏状态, 对应是+-90°的横屏差别(也就是左|右偏移的方向)portrait-primary|portrait-secondary: 竖屏状态, 也是对应+-90°的竖屏差别landscape: 会按照不同设备平台自由切换landscape-primary|landscape-secondary, 也就是横屏处理portrait: 同上, 都是按照设备平台来处理切换portrait-primary|portrait-secondary, 也就是竖屏处理natural: 同上, 按照设备自由切换成portrait-primary(竖屏)|landscape-primary(横屏), 不同any自由旋转角度的强制方向any: 根据屏幕旋转角自由切换landscape-primary|landscape-secondary|portrait-primary|portrait-secondary配置
icons: 设备显示图标的列表, 用于指定轻应用的图标尺寸等信息, 也是比较关键配置项src: 图标URL地址, 支持 URL 和本地相对图标type: 图标的MIME类型, 不填写浏览器也会采用默认图片处理去匹配检索对应类型, 建议最好image/png并直接声明sizes: 图标宽高, 注意如果单个图片支持多种尺寸可以通过空格声明, 如48x48 96x96 128x128这样声明支持多尺寸图标
prefer_related_applications: 用于是否弹出安装原生本地app应用的提示, 默认为false, 详情见下.related_applications: 只有在prefer_related_applications:true情况下才会生效用于转原生应用下载平台地址.platform: 必须填写的下载平台, 比较常见的play(Google商店)|itunes(苹果商城)|windows(Win桌面),
具体可见 平台声明url: 下载的平台跳转的URL地址id: 应用下载平台上表示应用程序的标识 ID
以上就是比较常用到的 PWA 配置项目, 具体可以按照自身所需的情况处理从而开发泛用的轻度应用.
关于 display 配置, 可以通过 display-mode 这个查询条件去指定在不同的显示类型下不同的显示样式, 如:
1 | /* display:fullscreen 适用的 CSS 样式 */ |
站点在同一浏览器中被访问至少两次的时候, 默认会调用浏览器的安装提示引导应用去将 PWA 应用安装到本地, 这里提供 JS
事件来用于监听处理:
1 | // 判断用户是否安装此应用 |
PWA 应用可以依托浏览器技术开发出更加编写的轻度应用, 不需要复杂安卓|iOS打包技术从而降低开发难度;
但很多原生系统功能只能看浏览器的规范支持, 同时对于网络依赖也更深(网络中断连本地资源都无法加载).
不过回过头来说很多应用功能大部分比较简单, 如果后面扩展起来最多 prefer_related_applications 设为 true 引流转原生应用也可以.