网络是一个奇妙的平台。它在各种设备和操作系统上的普遍性、以用户为中心的安全模型,以及它的规范和实现都不受单一公司控制的事实,使得网络成为开发软件的独特平台。结合固有的连通性,您可以随时随地搜索并与任何人分享您的发现。每次您访问网站时,它都会不断更新,并且您对它的体验可以是暂时的,也可以是永久的,这取决于您的需要。 只需一个代码库,Web 应用程序便可触及 任何地点、任何设备上的任何人。
平台特定的应用程序,以非常丰富和可靠而闻名。它们始终位于主屏幕、Dock 和任务栏上。无论网络连接如何,它们都可以工作。他们开始了自己的独立体验。它们可以从本地文件系统读取和写入文件,访问通过 USB、串行或蓝牙连接的硬件,甚至可以与存储在设备上的数据(例如联系人和日历事件)进行交互。在此应用程序中,您可以执行诸如拍照、查看主屏幕上列出的正在播放的歌曲或在其他应用程序中控制歌曲播放等操作。特定于平台的应用程序感觉就像 它们运行的设备的一部分。
该图表描述了特定于平台的应用程序(具有高功能)、Web 应用程序(具有高覆 波斯尼亚和黑塞哥维那电报号码数据 盖率)以及渐进式 Web 应用程序(同时具有高功能和高覆盖率)的相对功能和覆盖率。
如果从功能和覆盖范围的角度考虑平台特定应用程序和 Web 应用程序,平台特定应用程序代表最佳功能,而 Web 应用程序代表最佳覆盖范围。那么渐进式 Web 应用程序适合于哪里呢?
渐进式 Web 应用程序 (PWA) 采用现代 API 构建和增强,以提供增强的功能、可靠性和易于安装,同时 通过单一代码库在任何地点、任何设备上覆盖任何人。
应用程序的三大支柱
渐进式 Web 应用程序是经过精心设计的、功能强大、可靠且可安装的 Web 应用程序。这三大支柱使其成为一种感觉像特定平台应用程序的体验。
有能力的 #
如今,网络本身已经非常强大。例如,您可以使用 WebRTC、地理位置和推送通知创建超本地视频聊天应用程序。您可以使应用程序可安装,并使用 WebGL 和 WebVR 使对话虚拟化。随着 WebAssembly 的引入,开发人员可以利用其他生态系统,例如 C、C++ 和 Rust,并将数十年的工作和功能带到 Web 上。例如,Squoosh.app 利用这一点进行高级图像压缩。
到目前为止,只有特定平台的应用程序才能真正拥有此功能。尽管某些功能仍然超出了 Web 的能力范围,但新的和即将推出的 API 正在努力改变这种状况,通过文件系统访问、媒体控制、应用程序徽章和完整剪贴板支持等功能扩展 Web 的功能。所有这些功能都建立在安全、以用户为中心的网络权限模型上,确保访问网站对用户来说绝不会是一件可怕的事情。
在现代 API、WebAssembly 以及新的和即将推出的 API 之间,Web 应用程序比以往任何时候都更强大,并且这些功能还在不断增长。
值得信赖的 #
可靠的渐进式 Web 应用程序无论网络如何都感觉快速且可靠。
速度对于让用户使用 你的体验至关重要 。事实上,随着页面加载时间从 1 秒增加到 10 秒,用户跳出的可能性会增加 123%。onload活动结束后,表演并未停止 。用户永远不必担心他们的交互(例如,单击按钮)是否已被记录。滚动和动画将会感觉流畅。性能会影响您的整个体验,从用户对您的应用的看法到其实际性能。
最后,可靠的应用程序应该无论网络连接如何都可以使用。用户希望应用程序能够在网络连接缓慢或不稳定时,甚至在离线时启动。他们希望即使很难向你的服务器发出请求,他们所交互的最新内容(例如媒体曲目或门票和行程)也可用且可用。当请求无法实现时,他们希望被告知存在问题,而不是默默地失败或崩溃。