首页 > 解决方案 > 在 iOS 12 中使用临时授权设置应用程序徽章

问题描述

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

几篇文章(smasingmagazine.comgadgethacks.com等)声称,如果 iOS 应用程序获得临时授权,它将能够设置它的徽章。

应用临时授权时真的可以设置应用徽章吗?

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

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

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

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

标签: push-notificationios12

解决方案


这里同样的问题。

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

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

通知设置


推荐阅读