PWAs 不会取代原生 iOS 应用

渐进式 Web 应用(PWA)在 iOS 上正遭遇硬限制,Apple 尤其在其对《数字市场法案》(DMA)的回应下,限制了全屏可安装 Web 应用、持久本地存储和推送通知等能力,EU 用户受到的影响更明显。评论者争论这些缺口究竟是 Web 技术本身的局限,还是为了保护 App Store 收入而刻意制造的平台锁定;他们将 Apple 的做法与 Android 和桌面端更友好的 PWA 支持形成对比。许多人认为,PWA 是一种更便宜、跨平台的应用交付方式,若非如此,一些应用甚至根本不会存在;但也承认在 iOS 上,它们目前只是次一级选择,短期内不太可能取代完全原生应用。

Apple 在 iOS 上对 PWAs 的对待

  • 许多人认为,Apple 故意削弱 PWAs,以保护 App Store 收入和把控权(没有静默推送、深色模式失灵、长期存在的 bug、缺少 API)。
  • 也有人指出,Apple 在过去约 4 年里增加了大量 PWA 功能,称这削弱了“Apple 想让 PWAs 失败”这一说法。
  • 还有人把 Apple 的行为看作典型的“恶意合规”:先只做最低限度的配合,然后当监管迫使真正开放时再把功能收回。

EU / DMA 与 iOS 17.4 的变化

  • 在 EU 中,“添加到主屏幕”的 PWAs 被变成了简单的浏览器书签:
    • 没有独立窗口,没有持久本地存储连续性,也没有 PWA 推送/角标。
    • 有人报告称,在这次变化后出现了数据丢失和通知损坏。
  • Apple 的理由是:把 Safari 的 PWAs 与主屏幕集成会“偏向 Safari”而不是其他引擎,违反 DMA。
  • 批评者认为,Apple 本可以把同样的集成开放给其他引擎,并把这一做法视为报复和对用户不友好。
  • 目前仍不清楚:DMA 在法律上是否要求移除,还是 Apple 选择了对自己最有利的解释。

iOS 上的技术限制与 UX 问题

  • 提到的 iOS 端 PWA 当前限制:
    • 没有真正的静默推送来同步角标;像延迟通知这样的变通方案也很笨拙。
    • 深色模式行为数月来一直损坏或不一致。
    • 通过“添加到主屏幕”的安装流程,与应用商店安装相比并不直观。
  • 在 EU 版本中,PWAs 失去了全屏、类应用的 chrome 和本地存储连续性,进一步恶化了 UX。

Android 和其他平台

  • Android 的 PWA 支持被描述为“好得多”:
    • 原生安装提示、beforeinstallprompt 事件、按引擎区分的 PWAs(Chrome、Firefox),以及更可靠的行为(例如明暗模式)。
  • 桌面端体验(尤其是 Edge)被认为非常好;PWAs 可以给人“98% 原生”的感觉。

PWAs vs 原生应用(取舍)

  • 支持 PWA 的观点:
    • 跨平台、一个代码库;避免 App Store 费用、审核和硬件要求。
    • 让小型、内部或业余应用至少有机会存在,尤其是在没有付费开发者账号的 iOS 上。
    • 即时更新;不需要 100MB 的应用商店下载。
  • 支持原生的观点:
    • 更好的集成、更顺滑的 UI/动画、更丰富的 API,以及更少的浏览器怪癖。
    • 跨平台/Web 技术栈被视为“更便宜但更差”;认真打磨的应用应该是原生的。
  • 有人预测一种混合未来:如果 iOS 规则放松,PWA 可能会通过替代应用商店,配合 Tauri/Capacitor 风格的轻量原生外壳。

策略性应对

  • 建议包括公开提醒用户,缺失的功能是由于 iOS/Safari 的限制,并鼓励使用“为了获得最佳体验,请使用其他 OS/浏览器”的表述。
  • 也有人认为抵制 iOS 并不现实,因为那是大量付费用户所在的平台。