您根本無法將按鈕添加到動態通知界面。如果您嘗試這樣做,您將收到錯誤
非法配置:Notification界面中不支持按鈕。
但是,您可以將系統按鈕添加到除Dismiss
之外的其他通知按鈕。設置通知中心的類別時,您可以指定要添加到通知類別的自定義UNNotificationActions
。
var categories = Set<UNNotificationCategory>()
let myCategory = UNNotificationCategory(identifier: "MyCategory", actions: [/*your custom actions go here*/], intentIdentifiers: [], options: []) //set up the actions here
categories.insert(myCategory)
center.setNotificationCategories(categories)
然後你就可以在你的UNUserNotificationCenterDelegate
方法處理與這些行動的用戶交互(作爲其動態通知界面上顯示爲正常的按鈕),userNotificationCenter(_:didReceive:withCompletionHandler:)
這樣的:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping() -> Void) {
switch response.actionIdentifier {
case "Ok":
print("Ok action tapped")
case "Dismiss":
print("Dismiss action tapped")
default:
break
}
completionHandler()
}