我一直在寻找一个直接的答案,但还没有找到一个,所以我想在这里问我的问题。对于iOS 10后的应用,应该通过
处理远程通知App Delegate方法:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
}
或,UNDelegate方法:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
}
答案 0 :(得分:0)
TVOS不支持UserNotificationsUI.framework
,因此如果您需要支持TVOS,请坚持使用原始UIApplicationDelegate
方法。
否则,UNUserNotificationCenter
是我的首选,如果您可以坚持使用iOS10后支持,因为将来可能会弃用UIApplicationDelegate
。
如果您使用的是WatchKit,则不推荐使用didReceiveRemoteNotification
,请勿使用它。来自documentation:
创建一个采用该方法的委托对象,而不是使用此方法 UNUserNotificationCenterDelegate协议并实现 userNotificationCenter:willPresentNotification:withCompletionHandler: 和 userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: 方法。将此对象分配给单例的委托属性 UNUserNotificationCenter对象。