我希望在我的应用收到通知时显示通知自定义操作按钮。但什么都没发生!有人可以帮帮我吗? THX。
这是我的AppDelegate.swift
代码:
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Register ourselves as a delegate so we can be notified when actions pressed.
UNUserNotificationCenter.current().delegate = self
// Request permission.
UNUserNotificationCenter.current().requestAuthorization(options: [.alert]) {
granted, error in
if granted {
print("Approval granted to send notifications")
}
}
self.addCategory()
return true
}
func addCategory() {
// Add action.
let stopAction = UNNotificationAction(identifier: "stop", title: "Stop", options: [])
let snoozeAction = UNNotificationAction(identifier: "snooze", title: "Snooze", options: [])
// Create category.
let category = UNNotificationCategory(identifier: "reminder", actions: [stopAction, snoozeAction], intentIdentifiers: [], options: [])
UNUserNotificationCenter.current().setNotificationCategories([category])
}
}
UNUserNotificationCenterDelegate
extension AppDelegate: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
completionHandler()
}
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
print("Called when a notification is delivered to a foreground app.")
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "notificationPresentAtForeground"), object: nil)
completionHandler([.alert])
}
}
答案 0 :(得分:4)
我找到了答案。我没有设置我的通知内容类别标识符。 以下对我有用:
content.categoryIdentifier = "reminder"