我的问题是用于在定义的方案中处理推送通知的最佳实践。 我的应用有3个ViewControllers:
我收到了有效负载中的一些信息的远程通知(例如,让我们说一个电话号码)。我需要在DetailView上使用该信息,但是在接收时我没有登录(应用程序没有运行),所以我按下通知并打开我的应用程序(登录)但我需要保留某处通知负载(或对象)从它创建)并将其传递给DetailView。
所以问题是: 如果在用户登录之前收到通知,那么将数据从通知传递到内部ViewController的最佳做法是什么?
我现在唯一的解决方案是:评估didReceiveRemoteNotification
中的对象,将其保存在AppDelegate中,并在每次用户登录时访问它,如果对象存在则打开DetailView(并在使用后清理它)但我不认为这是一个好人。
有什么建议吗?
答案 0 :(得分:0)
尝试将此数据保存在User Defaults
中,然后在您登录时,从User Defaults
获取数据。第二个选项 - 设置一些variable
并将其初始化为此数据,然后将数据传递给新的ViewController
/
答案 1 :(得分:0)
您所说的内容大部分是正确的,因为您将收到通知的唯一地方是您的应用代表。
但是保留带有数据的全局对象并不是正确的做法,特别是如果您想尊重设计模式和类之间的隔离。
据我了解,你将在有效载荷中获得的数据将用于应用程序的其他屏幕,所以我认为最好的是:
将其保存在用户默认值或数据库中,并在您需要时访问它,并在每次新通知时保持覆盖它。
如果你想使用数据库选项,我建议你使用Realm比核心数据更容易,并且没有花太多时间来实现它。
提示:如果这是您要在应用中保存的唯一数据类型,则使用用户默认值。
希望这能回答你的问题