我正在尝试在推送通知时更新我的模型。由于我的有效负载可能高于4 KB,因此我想从服务器下载相关内容。有很多方法可以做到这一点,但是我无法确定哪种方法在大多数情况下都更有效。我不想在整个应用程序中重复我的自我。我的目标是iOS 10 +
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { }
如果用户没有从应用程序切换器中终止应用程序,这将非常有效。通知到时,我提取有效负载,从服务器下载数据并更新我的模型。但是,它并非始终有效。因此,当用户打开应用程序时,通过单击图标可以显示旧数据。
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { }
这也可以,但是会有延迟。因为当用户单击通知时,我必须抓住有效负载,下载数据并显示相关的UI。感觉很懒。
viewDidLoad()
中下载数据似乎也是可行的