在 iOS 12 中使用临时授权设置应用程序徽章

Man*_*lan 5 push-notification ios12

所以 iOS 12 引入了安静通知的临时授权,可以在通知中心看到,但在锁定屏幕上看不到。它有一个很酷的优势——你不需要用户的批准就可以发送一个。

几篇文章(smashingmagazine.comgadgethacks.com等)要求,如果收到的临时授权iOS应用可以设置它的徽章。

当应用程序被临时授权时,真的可以设置应用程序徽章吗?

我使用以下代码请求授权:

[[UNUserNotificationCenter currentNotificationCenter]
     requestAuthorizationWithOptions:UNAuthorizationOptionAlert | UNAuthorizationOptionBadge | UNAuthorizationOptionProvisional
     completionHandler:^(BOOL granted, NSError *_Nullable error) {
       if (granted) {
         [[UIApplication sharedApplication] registerForRemoteNotifications];
       }
     }];
Run Code Online (Sandbox Code Playgroud)

我收到didRegisterForRemoteNotificationsWithDeviceToken:可用于发送推送通知的令牌。当我发送带有有效负载的推送通知时,{"aps":{"alert":"Testing..","badge":1}}我会在通知中心看到它,但应用程序没有被标记。

我尝试使用设置徽章,UIApplication.sharedApplication.applicationIconBadgeNumber = 1;但效果不佳。如果我在不提供 UNAuthorizationOptionProvisional 选项的情况下请求常规授权,它会起作用。

Zag*_*ggo 2

这里同样的问题。

看来,临时授权的应用程序徽章默认处于关闭状态。我在文档中找不到任何有关它的信息。

但您可以在应用程序通知设置中看到它。“徽章”开关默认关闭:

通知设置