在 WWDC 2022 开幕演讲中,苹果宣布 Web Push 功能将改善来自网页应用的通知。该功能预估将于 2023 年上线,这对于用户和开发者来说都是一件好事情。事实上,苹果对于第三方应用的态度一直不太稳定。
● 最初的拒绝
在 iPhone 诞生之初,史蒂夫·乔布斯反对在设备上允许第三方应用程序。他希望开发人员创建可与 Safari 一起使用的 Web 应用程序。HTML5 等 Web 标准是使其成为应用程序可行平台的关键。这种类型的标记语言构建多媒体内容和交互元素。
苹果致力于提高其设备上的 HTML5 性能。当该公司在 2014 年推出 iOS 8 时,它包括 WKWebView,这是一个新的浏览器引擎,可以让混合应用程序和原生应用程序一样运行。
乔布斯接受 HTML5 作为 Adobe Flash 的替代品。当他在 2010 年撰写“Thoughts on Flash”时,他赞扬了 Netflix 和 YouTube 等公司转向 HTML5 视频内容。
苹果还鼓励使用 iOS 13 的网络应用程序。它从 App Store 中清除了低质量的应用程序,并表示某些特性和功能最好通过 Safari 提供。
● 遭质疑
在 6 月 13 日发布的文章,Telegram 创始人 Durov 引用英国监管机构竞争与市场管理局 (CMA) 的评论,认为苹果将用户从 Web 应用程序推向带有本地应用程序和规则的 App Store。
CMA 对其长达一年的移动生态系统研究的结论对 iOS 上的浏览器表示担忧,这是应用程序争论的另一个方面。苹果禁止第三方浏览器引擎,因此 iOS 和 iPadOS 上的每个浏览器都是基于该公司的 WebKit 引擎构建的。因此,CMA 表示,该公司几乎没有动力去改进 WebKit 并扼杀消费者和企业。
这样做的目的是抵御竞争对手,例如 Google 的 Blink 浏览器引擎。它是开源 Chromium 项目的一部分,其既定使命是让网络成为访问信息的焦点。Google浏览器在除 iOS 之外的所有平台上都使用 Blink。 iOS 版本的 Chrome 使用 WebKit,这意味着Google被迫跟上苹果的步伐。
WebKit 是开源的,该项目的使命是作为浏览器和应用程序的通用内容引擎。消息说,浏览器应该坚持显示内容而不是应用程序。开发人员想要 Web 应用程序,因为它们可以在任何平台上运行,而不受应用商店的规则和限制。
● 面对质疑 苹果的缓慢改进
面对质疑,苹果正在积极改进,尽管速度很慢。正如 6 月的主题演讲中所揭示的,其操作系统中的网络应用程序体验将得到改善。加入 Apple 开发者计划以发送 Web 推送通知不是必需的。
该功能要到 2023 年才会出现,它由 Push API、Notifications API 和 Service Worker 组成。Service Worker 是一段代表 Web 域运行的 JavaScript 代码,与打开的浏览器选项卡分开。
未经用户许可,网站不得推送通知。网站只能请求推送订阅以响应鼠标点击或击键。用户可以单击“订阅”按钮,然后在出现的权限对话框中单击允许。网站的通知切换将在设备设置中找到,就像本机应用程序一样。
Push API 使用一个 JavaScript 接口,允许网站使用推送订阅。 ServiceWorker API 支持推送消息,而 Notifications API 允许服务工作者推送通知,而无需打开浏览器。
在 macOS Ventura 中,安装了一个名为 webpushd 的新守护程序作为 LaunchAgent。它接收来自网页的推送订阅请求,并使用 Apple 推送通知服务将它们转换为推送订阅。结果是 Web 应用程序会感觉更接近原生应用程序。使用 Safari 中的共享表,用户可以将 Web 应用程序页面添加到主屏幕以融入其中。