gpt4 book ai didi

ios - 登录前处理推送通知信息

转载 作者:行者123 更新时间:2023-11-30 12:58:33 28 4
gpt4 key购买 nike

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

  • 登录:用户经过身份验证才能开始使用应用
  • TableView:一个简单的表格 View ,具有类似联系人的外观
  • DetailView:一个简单的 viewController,包含 TableView 所选行的详细信息

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

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

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

有什么建议吗?

最佳答案

您所说的基本上是正确的,因为您收到通知的唯一地方是您的应用程序委托(delegate)。

但是将全局对象与数据一起保存并不是正确的做法,特别是如果您想尊重设计模式和类之间的隔离。

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

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

如果您想使用数据库选项,我建议您使用 Realm,因为它比核心数据容易得多,并且不需要花费太多时间来实现。

提示:如果这是您要在应用程序中保存的唯一数据类型,则使用用户默认值。

希望这能回答您的问题

关于ios - 登录前处理推送通知信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40125384/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com