通过iOS推送通知更新模型

时间:2018-11-21 23:25:56

标签: ios apple-push-notifications unnotificationserviceextension

我正在尝试在推送通知时更新我的​​模型。由于我的有效负载可能高于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。感觉很懒。

  • UNNotificationServiceExtension和UNNotificationContentExtension 我不确定哪个或两个都适合我的用例。 AFAIK,使用UNNotificationServiceExtension我可以做一些工作,然后再向用户显示通知。在UNNotificationContentExtension的viewDidLoad()中下载数据似乎也是可行的

0 个答案:

没有答案