当我们实施didReceiveRemoteNotification以及UNUserNotificationCenterDelegate方法时iOS的行为方式 -
optional public func userNotificationCenter(_ center:
UNUserNotificationCenter, didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Swift.Void)
根据文档,didReceiveRemoteNotification已被弃用但是如果app已经实现了两个委托方法,哪一个获得iOS 10应用程序以及XCode 8(swift 3)上的iOS 9应用程序?
答案 0 :(得分:0)
基本上您是在问两个问题,
回答#1(根据Apple文档):
已弃用:
application(:didReceiveRemoteNotification:)
对于远程静音通知:
application(:didReceiveRemoteNotification:fetchCompletionHandler:)
对于远程无提示通知:
当应用程序处于后台时:userNotificationCenter(:didReceive:withCompletionHandler:)
当应用程序处于前台时:userNotificationCenter(:willPresent:withCompletionHandler:)
从通知中启动应用程序时(在launchOptions?[.remoteNotification]
上查找通知):application(:didFinishLaunchingWithOptions:)
回答#2:
如果您实现UNUserNotificationCenterDelegate
方法,则远程非静默通知将不会调用application(:didReceiveRemoteNotification:fetchCompletionHandler:)
。
application(:didReceiveRemoteNotification:fetchCompletionHandler:)
仅针对远程静默通知被调用。
如果您想知道为什么,可以看看这个article