在没有通知服务扩展的情况下显示推送通知徽章

Displaying Push Notification Badges Without Notification Service Extension

我的问题的根源是我无法在真实设备上测试推送消息,因为一个问题似乎是 Xcode 错误,但这不是现在的主题。我只是添加这个来回答为什么我不能正常测试我的实现。

所以我在 iOS 应用程序中使用 OneSignal SDK 实现了推送通知。根据他们的 setup guide,他们建议创建一个 "Notification Service Extension",这也会导致我的应用程序出现问题(使用配置文件),我无法修复。因此我决定跳过添加扩展,这意味着我将无法使用某些特定功能,例如发送图像和更改徽章。我不关心发送图像,但徽章是必须的。

我的问题是,添加 "Notification Service Extension" 真的需要操作 iOS 11/12/13 的徽章吗?我的目标是当客户端收到推送消息时,只在应用程序图标上显示 "1"。 2-3 年前,当我以前实现推送通知时,我不需要任何魔法,除了下面这行:

    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{


    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]

} 

这有变化吗?或者它会显示一个编号为 1 的徽章而我不必担心吗?

ios13 不允许将 PushKit 用于非 VOIP 场景。您必须在他们做广告时添加 NSE。它不再只是用于图像。