userNotificationCenter willPresentNotification在Dev中覆盖应用程序didRecieveNotifiction但不是Prod

时间:2017-08-21 16:02:29

标签: ios notifications apple-push-notifications appdelegate nsnotificationcenter

非常奇怪的问题我已经被困了一段时间。

我正在开发一个代码库,它有一个处理远程通知的通知中心,但AppDelegate也处理远程通知。

//通知中心处理程序

@available(iOS 10.0, *)
func userNotificationCenter(center: UNUserNotificationCenter, willPresentNotification notification: UNNotification, withCompletionHandler completionHandler: (UNNotificationPresentationOptions) -> Void) {
    log.debug("@AppDelegate: willPresentNotification: \(notification)")
}

// App Delegate Notification Handler

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
    log.debug("@AppDelegate: didReceiveRemoteNotification: \(notification)"
}

我遇到的奇怪行为是推送通知似乎适用于生产(当我们为应用商店构建时)。但是,当我在Dev中发送推送通知时,userNotificationCenter willPresentNotification处理程序会触发,但application didReceiveRemoteNotification不会触发。

我无法测试它为什么在生产中工作(因为你无法连接调试器),所以我不太明白为什么会出现这种情况。

你知道为什么userNotificationCenter willPresentNotification可能(或可能不)拦截生产对开发中的application didReceiveRemoteNotification(或者它可能拦截通知处理程序的任何其他原因)?当我删除userNotificationCenter代码时,标准didReceiveRemoteNotification会在开发中触发。

任何见解都非常感谢谢谢。

0 个答案:

没有答案