据 Apple Insider 报道,在 WWDC22 主题演讲中,苹果宣布了 Web 推送新服务,将改进来自 Web 应用程序的通知。但回顾过去苹果在 Web 技术方面总是有自己的想法。
在 iPhone 诞生之初,苹果创始人史蒂夫・乔布斯反对在设备上运行第三方应用程序。他希望开发人员创建可在 Safari 浏览器上使用的 Web 应用程序。
HTML5 等 Web 标准是使其成为应用程序可行平台的关键。这种类型的标记语言可构建多媒体内容和交互元素。
苹果致力于提高其设备上的 HTML5 性能。当该公司在 2014 年推出 iOS 8 时,包含了 WKWebView,这是新的浏览器引擎,可以让混合应用程序和原生应用程序一样运行。
乔布斯同意将 HTML5 作为 Adobe Flash 的替代品。当他在 2010 年撰写“Thoughts on Flash”时,他赞扬了 Netflix 和 YouTube 等公司转向 HTML5 视频内容的做法。
苹果还鼓励使用 iOS 13 上的 Web 应用程序,从 App Store 中清除了低质量的应用程序,并表示某些特性和功能最好通过 Safari 浏览器提供。
批评者的主要指责是,苹果将用户从 Web 应用程序推向支持本地应用程序和规则的 App Store 应用商店。
在 2008 年推出时,苹果对在 App Store 平台上发布的应用程序收取 30% 的费用。乔布斯称赞了原生应用程序,并表示它们比基于 Web 的应用更好。
一直以来这都是诉讼的主题,但并不是应用程序争论的唯一方面。
Telegram Web 开发者在今年 4 月分享了 iOS Safari 浏览器的 10 个列表问题后,Telegram 创始人 Pavel Durov 就此事写了一篇帖子。
Pavel Durov 的贴子于 6 月 13 日发表,称英国监管机构竞争与市场管理局 (CMA) 的评论提供了“准确的总结”。
英国 CMA 对苹果移动生态系统进行了长达一年的研究,其对 iOS 上的浏览器表示担忧,这是关于应用程序争论的另一个方面。
苹果禁止第三方浏览器引擎,因此 iOS 和 iPadOS 上的各个浏览器都是基于苹果公司的 WebKit 引擎构建的。因此,英国 CMA 表示,苹果公司几乎没有动力去改进 WebKit 引擎,从而扼杀了消费者和企业。
苹果的目标是抵御竞争对手,例如谷歌的 Blink 浏览器引擎,它是开源 Chromium 项目的一部分,其既定使命是让 Web 成为访问信息的焦点。
谷歌 Chrome 浏览器在除 iOS 之外的所有平台上都使用 Blink 引擎。iOS 版本的 Chrome 使用 WebKit 引擎,这意味着谷歌一直在被迫追赶苹果。
WebKit 也是开源的,该项目旨在作为浏览器和应用程序的通用内容引擎。
有消息称,苹果认为浏览器应该坚持显示内容而不是运行应用程序。
但开发人员想要 Web 应用程序,因为它们可以在任何平台上运行,而不受应用商店的规则和限制。
苹果改变了想法,目前正在推进,尽管速度很缓慢。正如今年 6 月的 WWDC 主题演讲中所揭示的,苹果操作系统中的 Web 应用程序体验将得到改善。
而且,加入苹果开发者计划来发送 Web 推送通知并不是必需条件。
Web 推送
该功能要到 2023 年才会出现,它由 Push API、Notifications API 和 Service Worker 组成。
Service Worker 是一段代表 Web 域运行的 JavaScript 代码,该 Web 域与打开的浏览器选项卡分离。
未经用户许可,网站不得推送通知。网站只能请求推送订阅以响应鼠标点击或击键。
用户可以单击“订阅”按钮,然后在出现的权限对话框中单击“允许”。网站的通知开关将在设备设置中找到,就像原生应用程序一样。
Push API 使用一个 JavaScript 接口,允许网站使用推送订阅。ServiceWorker API 支持推送消息,而 Notifications API 允许 service worker 推送通知,而无需打开浏览器。
在 macOS 13 Ventura 中,可安装 webpushd 新程序作为 LaunchAgent。它接收来自网页的推送订阅请求,并使用苹果推送通知服务将它们转换为推送订阅。
结果显示,Web 应用程序会感觉更接近原生应用程序。使用 Safari 中的共享菜单,用户可以将 Web 应用程序页面添加到主屏幕以融入其中。
苹果正在改进 Web 应用程序,可能想通过这种方式,来安抚开发者或监管者对其严格控制 App Store 的过度关注。苹果公司还可能将这些 Web 应用程序作为二级生态系统采用,但仍不想被迫开放 iPhone 侧载原生 App。