什么是PWA?
一、什么是PWA
PWA是渐进式 Web 应用,运用现代的 Web API 以及传统的渐进式增强策略来创建跨平台 Web 应用程序。。这些应用无处不在、功能丰富,使其具有与原生应用相同的用户体验优势。
PWA 是可被发现、易安装、可链接、独立于网络、渐进式、可重用、响应性和安全的。
PWA 权益
类似本机的体验
在设备上安装 PWA 时,其功能与其他应用一样。 例如:
PWA 有自己的应用程序图标,可以添加到设备的主屏幕或任务栏。打开关联的文件类型时,可以自动启动 PWA。PWA 可以在用户登录时运行。可以将 PWA 提交到应用程序存储,例如 Microsoft Store。高级功能
PWA 还有权访问高级功能。 例如:
当设备脱机时,PWA 可以继续工作。PWA 支持推送通知。即使应用程序未运行,PWA 也可以执行定期更新。PWA 可以访问硬件功能。与 Web 相关的优势
最后,PWA 可以在 Web 浏览器中运行,就像在网站中一样。 像网站一样运行,PWA 具有优势,例如:
可以通过搜索引擎为 PWA 编制索引。可以从标准 Web 链接共享和启动 PWA。PWA 对用户来说是安全的,因为它们使用安全的 HTTPS 终结点和其他用户安全措施。PWA 适应用户的屏幕大小或方向以及输入法。PWA 可以使用 WebBluetooth、WebUSB、WebPayment、WebAuthn 或 WebAssembly 等高级 Web API。延伸阅读:
二、三大PWA特性
功能性(capable)可靠性(reliable)可安装性(installable)PWA同时具备这三大特性,这也让PWA的应用体验更接近原生。
功能性
Web App当今时代已经具备了丰富的功能,你可以基于 WebRTC 开发一个视频聊天工具,可以使用 Geolocation API 开发一个地图软件,也可以使用 Notification API 来给你的APP推送消息,让用户可以在APP之外接收到通知。你也可以使用 WebGL 和 WebVR 来虚拟化这些场景。通过 Web Assembly,你可以步入其他生态,比如:C和C++等,给Web生态带来更多能力。
直到最近,只有原生App声称具备这些功能。当然,有一些能力还是web当前无法使用的,但新的API会被定义,用来扩展Web能力,比如让Web拥有文件系统的访问权限、媒体控制权限、图标上的badge修改权限、剪切板的全部功能。所有的这些能力都与Web安全、用户为中心的权限模型共同构建,确保访问网站不会给用户造成威胁。
随着现代API的定义,Web的功能性会越来越丰富。
可靠性
一个可靠的PWA应用感受起来很快,而且不依赖网络。
速度对于用户使用体验来说至关重要。实际上,页面加载的时间从1-10秒,用户流失会增长123%。性能也并非在 onload 事件之后就结束了。用户无需时刻担心他们的交互(例如点击了按钮)有没有响应。滚动和动画需要保持流畅。
最后,可靠的App需要对网络无依赖。用户会期望在弱网或者无网络的情况下打开App。他们期望看到上次他们加载的内容,就像是音频或者视频播放到某个特定时间点,即使网络连接困难,还是要保持可靠和可用。如果请求失败了,比起默默地失败或者崩溃,给用户合理的提示才是优异。
用户更喜欢App可以在眨眼睛响应他们的操作,这也是可靠性的一种。
可安装性
安装好的PWA应用可以在一个独立的窗口启动,而不用在浏览器中。它们也可以从主页、docks或者任务栏启动。你也可以搜索到它们,然后从搜索结果中打开。你也可以切换到其他App,然后再切换回来。这感觉就跟原生App几乎一致,成为设备的一部分。
相关推荐HOT
更多>>mysql的MEMORY引擎为什么没有redis的应用广泛?
一、mysql的MEMORY引擎为什么没有redis的应用广泛从kv缓存的作用看,mysql优点不在kv缓存上,用它做kv缓存维护成本高,redis安装启动使用简单,...详情>>
2023-10-20 18:38:17什么是PWA?
一、什么是PWAPWA是渐进式 Web 应用,运用现代的 Web API 以及传统的渐进式增强策略来创建跨平台 Web 应用程序。。这些应用无处不在、功能丰富...详情>>
2023-10-20 14:02:19软件包“被标记为手动安装”是什么意思?
一、软件包“被标记为手动安装”是什么意思当你尝试安装已安装的库或开发包时,你会看到此消息。意味着该软件包是由用户手动安装的,而不是通过...详情>>
2023-10-20 11:47:20什么是Flash?
一、什么是FlashFlash是一种基于向量图形的动画技术,由Adobe公司开发。它支持多媒体、游戏、网站设计等应用,可以在各种平台和设备上实现高质...详情>>
2023-10-20 10:24:01热门推荐
一个优异的web前端,需要具备哪些条件?
沸华为自研的数据库gaussdb有哪些优势?
热数据库ER图是怎么做的?
热为什么使用MySQL?
新什么是synchronized?
既然MySQL中InnoDB使用MVCC,为什么REPEATABLE-READ不能消除幻读?
分布式系统里用户ID生成有什么好的方法和规则能满足“少数、尽量短、不能直接看出规则”这几个条件?
isKindOfClass、isMemberOfClass 作用分别是什么?
APP开发流程步骤有哪些?
mysql的MEMORY引擎为什么没有redis的应用广泛?
webpack proxy工作原理为什么能解决跨域?
python的五个特点?
staticmethod和classmethod的区别?
Android App设计开发应遵循哪些原则?