关于 iOS 推送通知和登录的几个问题

Posted

技术标签:

【中文标题】关于 iOS 推送通知和登录的几个问题【英文标题】:Few questions on iOS push notifications and logins 【发布时间】:2012-05-07 21:25:32 【问题描述】:

这是我的场景。作为我的应用程序的一部分,当有人收到消息时,它会向手机发送警报。如果他们单击警报,我想打开他们收到警报的特定消息。我有一个将显示特定消息的视图消息控制器。以下是我的问题:

    在应用程序打开时处理通知的最佳方式是什么?我在 appDelegate 中收到警报,我是否应该显示从那里触发的警报框并在他们选择查看时打开正确的控制器?这似乎是不属于 appDelegate 的代码,但我不知道否则会如何发生。

    对于登录,这是一个非常相似的问题。当他们登录时,它会将他们记录到服务器中,并且他们会保持登录状态一段时间。当应用程序加载时,我想对服务器进行检查以查看他们的登录是否超时。如果有,我想将它们推送到应用程序的登录屏幕。应用委托中也会发生这种情况吗?

    我的第三个问题是如何最好地处理获取电话 ID。我在我的应用程序委托中设置了方法,当他们接受推送通知时我会在其中获取 ID。我的计划是检查他们是否已登录,如果他们正在检查我是否已经将他们的 ID 保存到服务器。如果没有发送它保存。这是最好的方法吗?

【问题讨论】:

【参考方案1】:
    1234563控制他们是否要查看与通知相关的内容,就像他们可以选择忽略来自应用的通知一样。

    是的,或者将视图切换到处理登录的任何视图控制器(您可以以模态方式执行此操作)。请务必让用户知道他们为什么会看到登录视图:“需要登录才能查看 [通知]”或类似的内容。但这取决于应用程序的其余流程。*

    不完全确定您指的是哪个 ID?您可能希望在与服务器通信的应用程序中存储一个唯一令牌。此令牌是在第一次登录时生成的,例如,它使您能够将用户的登录名与令牌相匹配。 UUID 可能会起作用,或者您可以自己滚动。

*关于您的自动注销的说明,为什么会有这个?大多数应用程序始终保持登录状态,让用户控制他们何时想要注销(Facebook、Twitter、Instagram 等 - 除非它是银行应用程序或 PayPal)。或者,您可以让用户添加自定义的四位数登录代码,例如 Dropbox 应用。

【讨论】:

这个应用程序基本上是网站的移动前端。如果我检测到它们已注销,我是否应该重新登录它们?他们并没有真正登录到应用程序,他们是通过应用程序登录到服务器。 对于#3,我指的是用于发送推送通知的 ID。 好的,但您还必须考虑到用户可能会在多台设备上登录您的应用并在每台设备上设置推送通知,因此您必须能够推送相同的通知同一用户,但在多个设备上。 关于登录/注销,您将凭据保存在钥匙串中(或创建令牌或安全的东西),然后从那里确定他们是否已登录。您可以在应用程序中设置一个标志,并与服务器进行验证。如果每次启动应用程序时都必须登录,我个人会很恼火——除非信息极其敏感,例如银行应用程序。

以上是关于关于 iOS 推送通知和登录的几个问题的主要内容,如果未能解决你的问题,请参考以下文章

在 ios 中处理多设备/多用户登录的推送通知

如何在具有多个登录用户的 iOS 设备上处理推送通知?

iOS 关于信鸽推送点击推送通知的处理

无法接收 FCM 推送通知 IOS - 目标 C

iOS8 - 请求远程推送通知

更新 iOS 分发证书和推送通知