从 PWA 向 iOS 发送推送通知

我有一个用 Blazor WebAssembly 开发的渐进式 Web 应用程序,我想知道我是否可以向 iOS 设备发送推送通知?虽然有人说,如果 Safari 现在可以在 MacOS 上运行,但 Push API 的网站说,它不支持在 iOS 上运行 Safari。

  • 如果我的目标是 iOS,我是否需要包装每个网络应用程序?我没有苹果笔记本电脑,我是否需要买一台才能做到这一点?

  • 还有 Firebase 和 Azure 通知中心,我能用他们的服务发送 iOS 的通知吗?Firebase 只有 Objective-C 和 Swift 的例子。

  • 这也引出了另一个问题: 通知的传输方式是否依赖于平台?我对云服务在这方面的角色感到困惑。

64040 次浏览

你只有三个主要的选择来获得推送通知工作在 iOS 上的 PWA。在这两种情况下,您都必须在 AppleDeveloper 门户上注册一个 AppID,并获得相应服务的权限。对于选项1,您注册的应用程序 ID 必须具有苹果钱包的权限。对于选项2和选项3,您必须具有推送通知的权限。在这两种情况下,您都应该记录您的 Bundle ID 和 Team ID,以备以后需要。

  • 选项1(更简单) : 使用 PassKit 设置一个通用的 Apple Wallet 通行证,它可以代理与本地通知非常相似的通知。给你 一些 文件这是一个工作样本介绍如何向注册设备发送推送通知。

  • 选项2(更难) : 使用 火库云消息或类似 Node-APN的软件包以“适当”的方式发送推送通知,并使用来自 Apple Developer Portal 的 P12或 P8密钥进行签名。这个问题比较棘手,主要是因为您需要 iOS 设备标识符,它只向本机安装的应用程序公开。恐怕我不知道如何从 PWA 中获得这个设备 ID,如果没有它,这个方法就不能工作。

  • 选项3(不是 PWA) : 你可以使用带有配置文件和 P12或 P8密钥的应用程序 ID,类似于前面的选项,但是你可以将你的应用程序封装在 阿帕奇 · 科尔多瓦中,然后分发(通过公共应用程序商店,或者使用 MDM 软件,或者通过私有的 Apple Business Manager)。

这是你的选择。我已经用尽了所有可能的方法来研究这个问题,我相信至少在接下来的几个月里,这将是你们唯一的选择。在未来,我们可能会看到对网络推送的进一步支持,或者可能只是一种从网络中获取设备 ID 的方法,但在那之前,这就是我们的目标。目前没有其他办法了。

来源: 《我为赛百味(Subway)、高德纳(Gartner)、摩根士丹利(Morgan Stanley)和普华永道(PwC)等主要品牌设计和开发应用程序》。我的研究是最近才开始的,包括与苹果公司 WebKit 主管的直接沟通,以及与世界上最著名的 PWA 和 iOS 专家之一的直接沟通。

我有个解决办法。如果 PWA 可以向服务器发送消息并将其存储在数据库中,那么手表应用程序总是可以从相同的服务器中提取并显示信息。这不是理想的解决方案,而是我的工作。

我只想让你们知道: 苹果将支持网络应用程序的推送通知!本新闻发表于 WWDC2022。苹果将在几个月后(2022年)在 macOS (Ventura)上发布 网络推送和 Safari 16,并在2023年在 iOS 和 iPadOS 上发布。

见: https://webkit.org/blog/12945/meet-web-push/