登录前处理推送通知信息



我的问题是关于在定义的场景中处理推送通知的最佳实践。我的应用程序有3个视图控制器:

  • Login:用户通过身份验证以开始使用应用
  • TableView:一个简单的表视图,具有类似联系人的外观
  • DetailView:一个简单的viewController,包含来自TableView
  • 选定行的详细信息

我收到一个远程通知,其中包含有效负载中的一些信息(例如,我们说一个电话号码)。我需要在DetailView上使用该信息,但在接收时间我没有登录(应用程序没有运行),所以我按通知,它打开我的应用程序(登录),但我需要保持某处通知有效载荷(或从它创建的对象),并将其传递给DetailView。

问题是:如果在用户登录之前收到通知,将通知数据传递到内部ViewController的最佳实践是什么?

我现在唯一的解决方案是:评估didReceiveRemoteNotification中的对象,将其保留在AppDelegate中,并在每次用户登录时访问它以打开DetailView,如果对象存在(当然使用后清理),但我不认为这是一个好对象。

任何建议吗?

你说的基本上是对的,因为你唯一会收到通知的地方是你的应用程序委托。

但是将数据保存为全局对象是不正确的,特别是如果您希望尊重设计模式和类之间的隔离。

我从你那里了解到,你将在有效载荷中获得的数据将在应用程序的其他屏幕中使用,所以我认为最好的是:

保存在用户默认值或数据库中,并在需要时访问它,并在每次收到新通知时重写它。

如果你想使用数据库选项,我建议你使用Realm,因为它比core data简单得多,并且不需要花太多时间实现它。

提示:如果这是你要在应用程序中保存的唯一一种数据,那么使用User defaults。

希望这能回答你的问题

尝试将此数据保存在User Defaults中,然后,当您登录时,从User Defaults获取数据。第二个选项—设置一些variable并使用此数据初始化它,然后将数据传递给新的ViewController/

最新更新