参考链接:https://blog.csdn.net/a44496913/article/details/80154254
什么是PWA
PWA是Progressive Web APP的英文缩写,翻译为渐进式增强WEB应用。
目的是在移动端利用提供的标准化框架,在网页应用中实现和原生应用相近的用户体验的渐进式网页应用。
PWA的特点
1.可靠——即使加载,即使在不确定的网络条件下也不会受到影响。
当用户从主屏幕启动时,service work可以立即加载渐进式Web应用程序,完全不受网络环境的影响。service work就像一个客户端代理,它控制缓存以及如何响应资源请求逻辑,通过预缓存关键资源,可以消除对网络的依赖,确保为用户提供即时可靠的体验。
2.快速
3.沉浸式体验——感觉就像设备上的原生应用程序,具有沉浸式的用户体验。
渐进式Web应用程序可以安装并在用户的主屏幕上,无需从应用程序商店下载安装。他们提供了一个沉浸式的全屏幕体验,甚至可以重新与用户接触的Web推送通知。
优劣势
优势:
1.无需安装,无需下载,只要你输入网址访问一次,然后将其添加到设备桌面就可以持续使用。
2.发布不需要提交到app商店审核
3.更新迭代版本不需要审核,不需要重新发布审核
4.现有的web网页都能通过改进成为PWA,能很快的转型,上线,实现业务、获取流量
5.不需要开发Android和IOS两套不同的版本
6.Web应用程序中,可以通过manifest.json控制应用程序的显示方式和启动方式,指定主屏幕图标、启动应用程序时要加载的页面、屏幕方向,甚至可以指定是否显示浏览器Chrome。
劣势:
1.游览器对技术支持还不够全面,不是每一款游览器都能100%的支持所有PWA
2.需要通过第三方库才能调用底层硬件(如摄像头)
3.PWA现在还没那么火,国内一些手机生产上在Android系统上做了手脚,似乎屏蔽了PWA, 但是相信当PWA火起来以后,这个问题就不会是问题
4.iOS目前支持不了PWA,由于苹果WebKit不对外提供一些核心API。(iOS 11.3 版本中,苹果公司悄悄地增加了基于“渐进增强 Web 应用程序”)
相比较原生应用的限制
iOS:
1.PWA 应用只能存储50 Mb 的离线数据和文件
2.如果用户几周不使用某个 PWA 应用,iOS 会释放该应用文件。虽然图标还是会显示在主屏幕上,但是当点击进去,将会重新下载该 PWA 应用
3.无法使用一些特性,比如蓝牙、序列端口、信标、Touch ID、Face ID、ARKit、高度传感器与电池信息,这需要等到 Web 平台提供了相应新特性你才能使用。
4.无法在后台访问执行代码
5.无法访问隐私信息(联系人、位置),也无法访问本地社交应用
6.没有应用内支付和许多其它基于苹果的服务
7.在 iPad 上,无法使用 Side 或 Split Views 与其它应用共享屏幕,PWA 应用始终占用整个屏幕
8.没有推送通知,没有 icon badge(在应用 icon 上显示小红点)与 Siri 集成
Android:
1.在安卓上,你可以存储超过50 Mb 的东西
2.如果你不使用该应用,安卓不会删除它的文件,但是在手机存储不够时会删除。同时,如果用户安装或使用频繁,PWA 应用可以请求永久存储
3.为 BLE 设备接入蓝牙
4.通过 Web 共享访问本地共享对话框
5.语音识别
6.后台同步和网页推送通知
7.通过 Web App Banner 邀请用户安装 PWA 应用
8.你可以在一定程度上自定义想要的启动画面和方向
9.使用 WebAPK 和 Chrome,用户只能安装同个 PWA 应用的一个实例
10.使用 WebAPK 和 Chrome,PWA 应用显示在设置界面中,你还可以看到数据的使用情况;在 iOS 系统中,这些都体现在 Safari 中
11.使用 WebAPK 和 Chrome,PWA 应用管理着 URL 的用途,如果你得到一个指向 PWA 应用的 URL,它将会在 standalone 模式下打开,而不是在浏览器的窗口中
PWA 应用可以在 iOS 系统上做什么?
1.用户可以在安装之前更改应用图标的名字
2.可以在 configuration profile 页面进行配置,这样用户就可以从公司获取 PWA 应用的快捷方式(这一点很好!)。Safari 使用术语 WebClip 来描绘这个特征,然而根据文档来看,似乎并不能读取 Web App Manifest
Configuration Profiles 可以包括 WebClips 或 PWA 图标
没有 App Store,那怎么安装 PWA?
1.用户必须在 Safari 中以某种方式访问你的 PWA 链接,并手动点击分享图标,然后点击“添加到主屏幕”。没有任何迹象表明你访问的网站是 PWA 应用。
2.为用户提供安装教程,务必注意这些按钮会根据系统语言进行本地化调整。
3.同时,在 App Store 中会有其它非自带浏览器,像 Chrome、火狐、Brave 和 Edge 是无法安装 PWA 应用的,它们也无法使用 Service Workers。
4.当然,大部分 Web 应用会提供一个链接,让你可以从 App Store 中安装原生应用,PWA 应用中也有这样一个链接
牢记这几点
1.你的 PWA 应用在不同的会话中无法保存状态。如果用户离开 PWA 应用再次回来的时候,它将会重启。所以,如果你需要用户验证邮箱、短信或者双因子认证,记住给用户提供一个合适的解决方案。
2.不活动的 PWA 应用将会显示为白屏。这时它并没有在运行,并且如果切换回它们,应用将会重启。