是否可以在 iOS 上修改传入的推送通知文本

Is it possible to modify incoming Push Notification Text on iOS

我有一个用例,通知提供商最终以我想要更改的格式向我发送推送通知文本。我可以在应用程序的 ObjectiveC/Swift 代码中这样做吗?

您的 iOS 应用程序没有机会在向用户显示之前修改传入的推送通知数据。

不,您不能更改通知警报消息(文本),当应用程序未处于前台状态时用户会看到。用户将看到通知负载包含的相同文本。

iOS10 以来,可以通过为您的应用程序创建 UNNotificationServiceExtension 来修改推送通知的文本(除非它们是静默通知)。

该扩展在 Xcode 中创建为一个单独的 Target,并提供一个具有两个功能的 NotificationService class,一个允许您修改推送通知的内容( didReceive withContentHandler) 和如果 didReceive withContentHandler 没有及时完成 (serviceExtensionTimeWillExpire).

为此,发送到您的应用程序的推送通知也需要修改以包含 key/value 对 mutable-content 1 的值,以便 iOS 知道为您的应用程序调用 UNNotificationServiceExtension。

Apple 的 UNNotificationServiceExtension 文档