惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
量子位
Recent Announcements
Recent Announcements
T
The Blog of Author Tim Ferriss
美团技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
V
Visual Studio Blog
博客园 - 聂微东
aimingoo的专栏
aimingoo的专栏
Microsoft Security Blog
Microsoft Security Blog
U
Unit 42
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
iOS 终于支持了 PWA,一起来认识一下这个强化版「小程序」 | ...
2018-04-12 · via 少数派

随着 iOS 11.3 正式版的发布,我们发现 Safari 支持了 PWA 的部分技术规范,因此在 iOS 11.3 上我们终于可以使用 PWA 应用。但是,相信有很多人连 PWA 这个名词都没有听过,更别提会想到去使用 PWA 应用。

和原生应用不同的是, PWA 应用就是一个用 Web 技术开发的的应用。使用起来也很简单,你只需要把它添加到主屏幕上,而且在使用的体验上就像原生应用一样。

看到这,想必你一定对 PWA 应用十分地好奇,那么接下来我将为你详细地科普一下。

PWA 的全称是 Progressive Web App ,翻译过来就是渐进式增强的网页应用。渐进式增强是 PWA 的开发宗旨,它的好处之一就是让 PWA 能够兼容所有的浏览器。

利用 Web 的技术给移动端的设备提供 App 的体验,这是 PWA 的目的。因此,PWA 经过 Google Chrome 团队的开发在可靠性、响应速度、用户体验三方面,升级了原来 Web App 的体验。所以,PWA 应用有以下的优点:

  • 离线或者网络环境较差的情况下也能工作
  • 响应的加载速度和原生应用没有区别
  • 界面布局和原生应用相一致
  • 拥有后台运行和推送通知的能力
  • ......
PWA 的组成

先说可靠性,得益于 Service Worker,PWA 应用即便是在离线或者糟糕的网络环境下也能快速地完成网页加载的工作。这就是 PWA 应用的离线能力,即 PWA 能够离线存储数据(每个浏览器能够存储的数据大小有所不同),当处在离线或者糟糕的网络环境之下也还能从这些缓存里向页面填充数据从而完成网页的加载。

浏览器能够存储的数据说明

其次是响应速度,当你在打开 PWA 应用时,能够获得和原生应用一样的过渡动画和快速响应,完全感受不到这是个网页应用。为了保证 PWA 应用首屏的加载,PWA 在设计上优先保证了 App Shell 的渲染,所以能够做到和原生应用一样的体验。

原生应用 - PWA 应用

最后是用户体验,打开 PWA 应用的第一眼就会发现,PWA 应用和原生应用在界面布局上是一模一样的,因此普通用户在第一次打开 PWA 应用时都会产生一种困惑:这个不就是原生应用嘛?更加吸引用户的是,PWA 应用能依赖 Service Worker 和推送通知渠道实现常驻后台并且推送通知。

如何使用 PWA 应用

以 iOS 系统为例,我们只需要把 PWA 应用添加到主屏幕,接着,在屏幕上点击 PWA 应用就能打开体验了。

添加到主屏幕的具体操作是这样的:

  1. 在 Safari 里前往(已经支持 PWA )的网站
  2. 手动点击分享图标,再点击添加到主屏幕,最后点击确定即可
添加 PWA 应用的步骤

这时你会发现,在 iOS 上添加 PWA 应用的过程和添加书签十分相似,因为 PWA 本质其实就是运行在 Safari 上的网页应用,书签和 PWA 应用只是放置的位置不同罢了。而且,不同于 iOS 上所有的应用需要通过 App Store 测试才可以下载, PWA 应用只依赖 Safari 这个浏览器。

要知道,PWA 应用运行在 Safari 这个浏览器中,必定需要网址链接,可是不是所有的网站都支持了 PWA 应用,而且 iOS 上又没有 Android 那样的邀请用户安装 PWA 的提示,所以你想要使用到 PWA 应用,得先前往收集有这些 PWA 应用网址链接的网站查找,比如: PWA Directory

找到你想要的 PWA 应用

你还可以参考我派之前的文章中介绍过的 Android、Windows、Mac 上的 PWA 网站。

Android 版:用过这些 Android 网页版应用后,或许你就不想装它们的客户端了

桌面版:用新版的 Chrome 把 PWA 网站添加到桌面,获得媲美原生应用的体验

毕竟网页诞生于桌面端,虽然过去的网页在移动端存在短板,和原生应用无法竞争。可是,PWA 应用的火热,让我们看到一种桌面端和移动端未来统一的可能性。更重要的是,随着 Safari 支持 PWA,我是真的很期待未来 Web App 的发展方向。而现在,你已经可以在 Android、Windows、iOS、Mac 上体验到 PWA 应用了。

尽管原生应用里支持 PWA 的应用是有限的,不过随着 PWA 火热起来,像 Twitter、Uber、星巴克、Google Map 都支持了 PWA,一定会有越来越多的原生应用会选择支持 PWA,让我们拭目以待。

iOS 上的 PWA 应用和其他应用的区别

虽然 iOS 11.3 开始支持 PWA 应用,但是 PWA 应用在 iOS 11.3 上遇到的问题也不少。例如我在使用 PWA 应用时就发现几个问题:Google Map 的 PWA 无法登陆、微博的 PWA 提示登录后没有跳转回去……除了这些 PWA 应用在 iOS 11.3 上的出现的问题,PWA 应用在 iOS 11.3 系统上还有这些的问题,网页开发者 Maximiliano Firtman 已经列出了 较为详细的清单,我摘录了其中和我们日常使用关系较大的几项:

  • 无法后台同步
  • 不支持 fullscreen(全屏显示)和 minimal-ui
  • 无法锁定 PWA 应用的方向,竖屏还是横屏
  • 无法改变状态栏的颜色
  • 如果 PWA 应用没有后退的手势,将无法切换页面
  • 没有启动动画
  • 不支持透明图标
  • ......

和原生应用的区别

由于只依赖 Safari 运行的做法绕过了苹果对软件的审核机制, PWA 应用和原生应用在使用的体验上会存在差异。比如,iOS 上最新的人脸识别的 API 在 PWA 应用上就无法得到支持。所以,现阶段,PWA 应用在 iOS 11.3 上还只能调用有限的 API,比如:

  • 地理信息定位
  • 传感器(陀螺仪,加速度计,磁力仪)
  • 相机
  • 音频输出
  • 语音合成(仅连接耳机)
  • Apple Pay

由此可见,iOS 11.3 所支持的 PWA 应用和 Android 所支持的是有许多的区别的。

和 Android 支持的 PWA 应用的区别

从发展程度来看,Android 上的 PWA 应用由于 Chrome 而支持得早,所以 Android 上的 PWA 应用不光权限更大而且更加符合 PWA 规范。通过 iOS 和 Android 两个平台的简单对比,我们可以知道 iOS 支持的 PWA 应用在这些方面是不足的:

  • 在 Android 上能够储存超过 50 MB 的数据和文件;iOS 上几周不使用 PWA 应用后缓存的文件将被释放
  • 在 Android 上有后台同步和离线消息推送功能;iOS 无法保留后台,更无法获得消息推送
  • 在 Android 上有邀请用户安装 PWA 应用的提示;iOS 只会引导用户从 App Store 下载
  • 在 Android 上的设置里有 PWA 应用的数据使用量;iOS 都在包含在 Safari 里
  • 在 Android 上能够以独立模式打开 PWA 而不是浏览器;iOS 不会识别你的 URL 是不是 PWA
  • 在 Android 上一个 PWA 只能安装一次;iOS 可以多次安装
  • 在 Android 上能够有蓝牙访问、语音识别等功能;iOS 没有蓝牙、Touch ID、Face ID、ARKit、电池信息

总结

无论如何,iOS 11.3 支持了 PWA 应用是一个好消息,因为这让 PWA 应用的适用领域一下子扩大,从 Android、Chrome 到 Microsoft Edge、Windows 10 再到 iOS、macOS。可是,最关键的还是普通用户能否接受用网页应用来替代原生应用,因为虽然 PWA 应用在体验上能够做到和原生应用相似的体验,但 PWA 应用给用户造成的使用困难还是存在的。

况且,苹果在 iOS 上对 PWA 应用的支持还是初步的阶段,Webkit 还有许多的问题没有解决,因此对于 iOS 用户来说,PWA 应用是一种新鲜的体验。

参考文章: