基本上,如果应用程序已后台运行,则我将无法在其应用程序的选项卡上正确更新我的徽章图标,因为未调用委托函数didReceiveRemoteNotification和UNUserNotificationCenter,因此我无法存储传入的徽章图标的值。
我已经阅读了很多有关此的文章。正如我使用UNUserNotificationCenter所建议的那样,此didReceiveRemoteNotification可能是一种较旧的委托方法。我使用以下方法注册通知:
func requestNotifications(application: UIApplication) {
let center = UNUserNotificationCenter.current()
center.delegate = self
center.requestAuthorization(options: [.alert, .sound]) {
(granted, error) in
if !granted {
NSLog("Failed to get token, error: Notifications are not allowed")
} else {
DispatchQueue.main.async() {
application.registerForRemoteNotifications()
}
}
}
}
但是我的appDelegate中的任何委托函数都没有被调用:
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
和
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
我不知道我在做什么错。是Twilio还是我这边?我已经正确地完成了所有操作,向用户请求通知权限,然后将center.delegate注册到self上。
此外,“应用”图标上的徽章编号未正确更新。第一次收到通知时始终为2,只有一个通知,那么为什么不只说1?这是Twilio的问题吗?
帮助完全卡住了...