gpt4 book ai didi

ios - Swift 推送通知委托(delegate) Debug模式行为

转载 作者:行者123 更新时间:2023-11-28 08:00:53 24 4
gpt4 key购买 nike

我已将 APNS 连接到我的应用。

问题在于系统委托(delegate) didReceiveRemoteNotification 的不同行为。它只有在调试器附加到应用程序时才能正常工作,否则,当应用程序处于后台状态时不会调用它。例如,如果测试电话通过 USB 电缆连接到 mac 并且正在调试应用程序,则调用委托(delegate)。电缆断开后立即不再调用代理。

问题是应用程序状态(调试与否)如何影响 didReceiveRemoteNotification 行为。 (IOS 10 和 11)

为了检测委托(delegate)调用,我发出了后端请求,我确信调用检测没有问题。

最佳答案

我遇到了同样的问题,花了很多时间寻找解决方案。我找到了一个 workaround mentioned in the Apple forums .

将处理推送通知的类设为 UNUserNotificationCenter 的委托(delegate)

if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().delegate = self
}

然后实现willPresent notification: UNNotification方法

@available(iOS 10.0, *)
extension APNSService: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
Log.debug?.message("Received push in foreground through UserNotificationCenter, calling Inbox.incrementalSync")
...
completionHandler([])
}
}

关于ios - Swift 推送通知委托(delegate) Debug模式行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46736376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com