渐进式 web 应用程序——PWA

原文链接 “What is a PWA and why should you care?” by Mahesh Haldar

在过去的几年里,手机用户的数量呈指数级增长。今天,超过 60%的互联网使用是通过移动电话。

显然,原因包括可移植性、廉价的硬件、容易访问 internet 以及 internet 上服务数量的增加。随着手机用户的增多,优化手机的用户体验至关重要。

对于较小的公司来说,由于成本或时间限制,它们通常没有原生应用,web 应用程序则是它们通过提供尽可能好的体验来赢得客户的关键机会。

如果公司有专门的原生移动应用程序,那么由于硬件和内存限制或其他个人偏好,许多用户可能会更喜欢自己的 web 版本,以避免下载和安装。

如果一家公司致力于并希望获得最大程度的客户参与,那么 web 应用程序的体验必须接近原生应用程序。

今天,网站已经变成了杂货店,社交网络以及聊天的地方等等。并期待该网站能搜索房屋并保存世界地图,期待该网站能提供 powerpoint 和 excel 表格的所有功能。

提示:在组件中更快地使用快捷Bit构建应用程序。它帮助您与您的团队共享和重用组件,并使用它们来构建新的应用程序!试试吧。

Bit

渐进式 web 应用程序

让我们以 Whatsapp 为例。当没有网络的时候,你仍然可以打开应用程序,检查过去的信息,甚至回复别人。当电话得到互联网连接时,信息会自动发送到后台。

这就是 PWA 承诺在 web 应用程序中要提供的东西。它允许 web 应用程序在没有网络时加载,在后台同步,并无缝地做事情,同时为您的用户提供一种原生体验。

为什么我们需要 PWA,他们的特点是什么?

让我们来讨论一下那些非 PWA 所不具备的核心属性。

  1. 可靠性

应用程序应该瞬间加载完毕,当没有网络或像 2G 这样的低速网络时也应该打开。谷歌发现,如果页面加载时间超过 3 秒,53%的用户会放弃网站。

  1. 快速

当用户与 web 应用程序交互时,滚动和页面过渡应该非常平滑。每个人都讨厌糟糕的滚动体验。

  1. 响应式

应用程序应该适配所有不同大小的设备。完美的 web 应用程序应该像流体一样,以容器的形状呈现。

  1. 可安装性

如果我们想让 web 应用程序更接近原生应用程序,它们必须是可安装的,并且应该与其他原生应用程序一起驻留在主屏幕中,这样用户就可以在一次单击中访问 PWA。

  1. 闪屏

PWA 在应用程序启动时增加了一个闪屏,这让 PWA 感觉更像一个原生应用程序。

  1. 高度可参与性

应用程序应该让用户参与进来。PWA 提供推送通知、主屏幕图标、全屏和离线第一应用等功能,以提高用户参与度。

在 PWA 中,所有以上特征都是可能的。

PWA 只是一个普通的 web 应用程序,但它上的是最好的大学,并掌握了用户体验。

PWA 与现代 UI 框架

很少有人认为 PWA 与最新的 UI 框架(如 React.js、Angular 6 或 Vue.js)能结合在一起。好吧,不需要的,PWA 与您使用的框架无关,它只与所需的组件有关。

PWA 如何使网站离线?

这正是我第一次思考 PWA。如果没有互联网,web 应用程序是如何打开?

我们都知道,在没有网络连接的情况下,原生应用程序是可以打开的,因为当我们下载并安装它们时,像 UI 组件这样的重要资源和一些数据就被存储在了设备中。这就是要在 PWA 中要做的事情。

PWA 在浏览器缓存中存储 HTML 文件、CSS 文件和图像,开发人员可以完全控制网络调用。所有这些都是由Service Workers实现的。

PWA 的技术组成是什么?

PWA 有一些重要的技术组件,它们共同工作,为常规 web 应用程序提供强大的支撑。

以下是每一个 components 的概述。

Service Worker

我们的 web 应用程序直接与网络对话,如果没有网络,屏幕上就会显示著名的恐龙。

这里可以进行优化。对于第一次加载,Service Worker 将所需的资源存储在浏览器缓存中。当用户下次访问应用程序时,Service Worker 会检查缓存并在检查网络之前将响应返回给用户。

Service Worker 只是 JavaScript 代码的一个组件,它充当浏览器和网络之间的代理。Service Worker 管理推送通知,并使用浏览器的缓存 API 构建离线的第一个 web 应用程序。

这可以加快应用程序的性能,无论设备是否连接到互联网。

开发人员可以完全控制应用程序的行为,以及它在各种场景下应该如何响应。Service Worker 有自己的生命周期事件。

一旦缓存完成并为离线访问做好准备,您还可以通过显示一个说明来吹嘘缓存已经完成,用户也可以离线访问它。

manifest 文件

manifest 文件是一个 JSON 配置文件,它包含应用程序的信息,如安装时在主屏幕上显示的图标、应用程序的名称、背景颜色或主题。

如果 manifest 文件存在,Chrome 浏览器将自动触发 web 应用程序安装横幅,如果用户同意,将把图标添加到主屏幕,并安装 PWA。

下面是 manifest 示例文件:

{
  "short_name": "Spinner",
  "name": "Fidget spinner",
  "icons": [
    {
      "src": "/images/icons-192.png",
      "type": "image/png",
      "sizes": "192x192"
    },
    {
      "src": "/images/icons-512.png",
      "type": "image/png",
      "sizes": "512x512"
    }
  ],
  "start_url": "/home/?source=pwa",
  "background_color": "#3367D6",
  "display": "standalone",
  "scope": "/home/",
  "theme_color": "#3367D6"
}

在截图中 manifest 检查文件。

HTTPS

Service Worker有能力拦截网络请求,并可以修改响应。Service Worker 在客户端执行所有操作。因此,PWA 需要安全协议 HTTPS。

Service Worker有能力接收推送通知和后台同步,这肯定增加了用户的体验,并保持客户的参与。推送通知和后台同步是可选的,但建议提供更简单的体验。

Demo

  1. Status

告诉我们 Service Worker 被激活和运行。

  1. 离线

通过检查这个选项,chrome 可以判断应用是否离线。刷新选项卡,它将模拟 PWA 在没有网络时的响应方式。您还可以关闭 wifi 或数据来测试 PWA。

  1. cache

这部分显示 Service Worker 在缓存中存储的所有文件。

  1. push && async

这些部分在开发过程中用于测试推送通知和后台同步。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容