我有一个消息传递应用程序,它通过推送通知从服务器获取数据。 在下图中,您可以看到进程并检查它在哪里出现故障:
我对这个问题进行了很多研究,但没有找到一个通用的解决方案。
我得到的一个解决方案是使用静默通知,discussed Here , 在显示数据之前获取数据并保存。但是我没有找到如何在收到静默通知后显示来自 app delegate 的通知。
如果我在某个地方概念上有误,请纠正我。
更新: 问题之一是 application:didReceiveRemoteNotification:fetchCompletionHandler: 仅在
时调用- 应用在前台
- 用户点击通知
但是当用户没有点击通知时,application:didReceiveRemoteNotification:fetchCompletionHandler: 没有被调用,我找不到保存数据的方法,出现在通知中。
最佳答案
你的问题是“在应用程序处于前台时从远程通知获取数据”如果我是正确的,你可以使用这两种方法从后台和前台应用程序模式的远程通知获取数据。
// Notification will present call back
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.alert, .sound, .badge])
// Handle your data here
print("Notification data: \(notification.request.content.userInfo)")
}
@available(iOS 10.0, *)
// Notification interaction response call back
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
// Handle your data here
print("Notification data: \(response.notification.request.content.userInfo)")
}
关于ios - Swift:从远程通知获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48514256/