如何注册通知类别?

Posted

技术标签:

【中文标题】如何注册通知类别?【英文标题】:How can I register for Notification Categories? 【发布时间】:2017-09-21 20:51:43 【问题描述】:

我正在尝试注册类别,但由于某种原因我无法在我的 iPhone 上注册,但它可以在模拟器上运行?我使用以下代码进行注册,然后查看我订阅的类别。当我在 iPhone 上运行我的应用程序时进行检查时,它显示为 0,而当我在模拟器上检查时显示为 1。

        let snoozeAction = UNNotificationAction(identifier: "SNOOZE_ACTION",
                                            title: "Snooze",
                                            options: .foreground)
    let expiredCategory = UNNotificationCategory(identifier: "TIMER_EXPIRED",
                                                 actions: [snoozeAction],
                                                 intentIdentifiers: [],
                                                 options: UNNotificationCategoryOptions(rawValue: 0))
    let center = UNUserNotificationCenter.current()
    center.setNotificationCategories([expiredCategory])

然后我检查

    UNUserNotificationCenter.current().getNotificationCategories  categories in
            print("These are the categories\(categories.count)")
            print(categories.description)
        

我不知道发生了什么!

【问题讨论】:

【参考方案1】:

试试这个,我正在使用它,它对我有用。

func notificationSetup()

   if #available(ios 10.0, *)
   
     let center = UNUserNotificationCenter.current()
      center.delegate = self
      center.requestAuthorization(options: [.alert,.badge,.sound])  granted,error in
      if (error == nil) 
       UIApplication.shared.registerForRemoteNotifications()
      
     
    let snoozeAction = UNNotificationAction(identifier: "SNOOZE_ACTION", title: "Snooze", options: [.foreground, .authenticationRequired])
    let categoryOptions = UNNotificationCategoryOptions(rawValue: 0)
    let expiredCategory = UNNotificationCategory(identifier: "TIMER_EXPIRED", actions: [snoozeAction], intentIdentifiers: [], options: categoryOptions)
    let categories = Set([expiredCategory])
    center.setNotificationCategories(categories)

   

【讨论】:

您好,感谢您的回答,但这不适用于真正的 iPhone。这确实有效或模拟器......它根本没有意义。 你能展示更多的代码吗,就像我做同样的事情一样,它工作得很好。

以上是关于如何注册通知类别?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据传入的远程通知有效负载中定义的类别添加不同的操作?迅速更新

ANCS 上应用通知的类别 id 是如何确定的?

如何在 Push Sharp 库中的 APNS 有效负载中添加类别以进行交互式通知 ios

如何向 Azure 通知中心注册的每个设备发送不同的推送通知?

如何在 iOS 的 Azure 移动应用通知中心注册目标推送通知

如何注册推送通知? IOS 10