跳转到内容

User:AstrianZheng/drafts/progressivewebapps

维基百科,自由的百科全书

渐进式网页应用程序(Progress Web App,PWA)是一种普通 网页网站 架构起来的 网页应用程序,但它可以以传统 应用程序 或原生 移动应用程序 形式展示给用户。这种应用程序形态,企图将目前最为现代化的 浏览器 提供的功能与移动设备的体验优势相结合。

技术背景

[编辑]

自 2005 年以来,网页开发 从 静态形式 升级为以服务器端技术(如 PHPASP.NET 等)与客户端工具(如 Ajax[1] 等)以及一些响应式网页设计技术构建的 动态 形式。[2]那时尽管有一些基于网页技术制作的网页应用(如 iPhone 于 2007 年展开的尝试),但都在与原生应用的竞争下失败。相较于需要利用浏览器运行的网页应用,原生应用提供一个更好的用户体验和极快的运行速度。以打包资源和直接利用硬件资源的特性,都令原生应用运行速度更快,并提供更多功能。但到 2010 年代中期,由于 HTML 5CSS 3 和 JavaScript 技术的持续发展,技术更强大、兼容性更高的 浏览器 的出现,以及类似 A10 和 高通骁龙 821 这样强大的处理器的发明,都让高效的混合型应用程序成为强有力的原生应用程序替代品。

混合型应用程序

[编辑]

混合应用程序最大程度地还原移动设备的用户体验,并且需要通过应用商店 下载。 因此,它们依然消耗存储空间。 以 标记语言样式表,以及 脚本语言 制作的互动网页元素没有使用封闭的系统,例如 Flash。 一部分运行在 移动浏览器 的混合型应用没有 URL,但支持丰富的 用户界面,也允许使用一些操作系统层级的能力。 在最新发布的 CSS 3 和 JavaScript 框架 中,开发者被允许使用新的 设计 范式,例如以网格和 Flex 为代表的 CSS 盒模型,还能使用转译、转换与动画等功能。

特点

[编辑]

在2015年,设计师弗朗西斯·贝里曼和 Google Chrome 的工程师亚历克斯·罗素提出「渐进式网页应用程序」概念[3],符合条件的应用程序可以现代的浏览器中使用新功能,包括应用工作线程和 网页应用清单,而且用户在原生 操作系统 中,可以从网络应用程序向渐进式网页应用程序升级。 根据 Google 开发者支持页面,[4][5] 这些特征是:

  • 渐进式:用户无需担心使用哪个浏览器,也可以正常使用 PWA。因为这些 PWA 以 渐进增强 作为核心信条。
  • 响应式:PWA 适应包括电脑、手机、平板等其他常用设备在内的多种浏览环境。
  • 连接独立性:利用服务工作线程,PWA 可以离线或网络情况较差的环境下工作。
  • 接近原生应用:为用户提供更接近原生应用的交互体验与导航。
  • 永葆新版:归功于服务工作线程的更新机制,PWA 可以保证用户永远使用最新版本。
  • 安全:通过 HTTPS,PWA 可以阻止通讯窃听,而且能保证内容不被篡改。
  • 可被发现: 归功于 W3C 提供的清单文件[6],以及服务工作线程的注册范围机制,PWA 可被标识为「应用」,且搜索引擎可以正常地索引 PWA。
  • 可被组装:类似 推送通知 这样的功能在 PWA 上都可以轻松地被组装。
  • 可被安装:允许用户直接「保留」最有用的 PWA 到他们的系统桌面,无需到应用商店完成麻烦的步骤。
  • 可被链接:只需轻松地分享 URL 便可链接至 PWA 中,无需复杂的安装步骤。
List of PWAs
Name Description Link Audit score
ReSTbasis Web Starter Kit. [1] 100
The Air Horner An Air horn. [2] 100
chromestatus Chrome Platform Status [3] 100
Dev.Opera Web features and implementations [4] 73
Bet Calculator Online bet calculator [5] 91
emojoy [6] 82
Expense Manager Example expense manager [7]
Firefox Platform Status Roadmap for web platform features [8]
Flipkart Lite Online shopping [9] 55
GitHub Explorer [10]
Google I/O [11] 82
Guitar Tuner Tune a guitar [12] 82
Kite OnAir network Kite Network [13]
Memory Game PWA [14] 91
Notepad Offline Notes [15]
Paytm Lite [16] 91
Pokedex [17] 91
Polymon by Polymer [18]
Progressive Beer [19] 82
QR Code Scanner Offline QR code scanner [20] 100
React HN [21]
Remember GPS logging [22] 73
Resume Nation [23] 91
SVGOMG SVG editor [24] 82
Smaller Pictures [25]
Soundslice [26] 64
SplittyPie [27]
sv-ginger WebGL Morph Demo [28] 91
Taskade [29]
TeamGrid [30]
Twitter [31] 82
voice-memos [32]
Washington Post [33] 55
Wave-PD1 Synthesizer with Web Audio API [34] 73
Web Bluetooth (Intel® Edison demo) [35] 100
Web NFC enabled shopping cart [36] 100
Wiki Offline [37] 73
X Sound [38] 45

参考文献

[编辑]
  1. ^ Garrett, Jesse James. Ajax: A New Approach to Web Applications. [February 18, 2005]. 
  2. ^ Marcotte, Ethan. Responsive Web Design. [May 25, 2010]. 
  3. ^ Russell, Alex. Progressive Web Apps: Escaping Tabs Without Losing Our Soul. [June 15, 2015]. 
  4. ^ Your First Progressive Web App | Web Fundamentals - Google Developers. [2016-07-17]. 
  5. ^ Google Developers. Progressive Web App. [June 15, 2015]. 
  6. ^ W3C “Web App Manifest”, Working Draft, retrieved 12 September 2016

[[Category:网络应用程序]]