6 月 22 日消息,据 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。