我已将APNS连接到我的应用程序。
问题在于系统委托didReceiveRemoteNotification
的不同行为。它仅在调试器附加到应用程序时才能正常工作,否则,当应用程序处于后台状态时,不会调用它。例如,如果测试电话通过USB电缆连接到mac并且正在调试app,则会调用该委托。电缆断开后,代理人不再被调用。
问题是app状态(调试与否)对SELECT y.fk_id FROM
(SELECT x.fk_id, COUNT(x.type_id) AS count, SUM(x.type_id) AS sum
FROM mytable x GROUP BY (x.fk_id)) AS y
WHERE y.count = 3 AND y.sum = 6
行为的影响。 (IOS 10和11)
要检测委托电话,我会发出后端请求,并确定呼叫检测没有问题。
答案 0 :(得分:0)
我遇到了同样的问题,花了很多时间寻找解决方案。我找到了workaround mentioned in the Apple forums。
使您处理推送通知的类成为UNUserNotificationCenter
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([])
}
}