如何注册通知类别?
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。这确实有效或模拟器......它根本没有意义。 你能展示更多的代码吗,就像我做同样的事情一样,它工作得很好。以上是关于如何注册通知类别?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据传入的远程通知有效负载中定义的类别添加不同的操作?迅速更新
如何在 Push Sharp 库中的 APNS 有效负载中添加类别以进行交互式通知 ios
如何向 Azure 通知中心注册的每个设备发送不同的推送通知?