【发布时间】:2017-03-11 07:14:44
【问题描述】:
我想在我的应用收到通知时显示通知自定义操作按钮。但是什么也没发生!任何人都可以帮助我吗?谢谢。
这是我的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])
}
}
【问题讨论】:
标签: ios swift push-notification swift3