在我的应用中,我实现了一个带有socketio后端的聊天功能。 所有会话分组在如下视图中:
静默通知是处理此屏幕更新的最佳方式吗?
当我向用户发送消息时,我还会收到nodejs服务器发送的“警报”通知。
如果用户允许通知,应用程序是否位于前台,背景等,如何处理这两种通知。
现在有点混乱,所以如果你对这个话题有一些解释,也许这不是正确的方法,谢谢你。
答案 0 :(得分:1)
您没有理由对邮件进行无提示通知。您可以发送正常(非静默)通知或仅发送静默通知,具体取决于应用程序不在前台时您想要的内容。
如果不在前景中,则在您的情况下将丢弃静音,非静音将被用户按下,并且如果按下则应导航到应用内的相应屏幕。
当您在屏幕上提到时,最好是收到通知并仅处理这些通知。通知可能已包含显示消息所需的所有数据,但有两个事实:
话虽如此,您需要在某个时候从服务器手动获取数据。因此,当像这样的屏幕上时,最好只是忽略通知并尝试每隔几秒获取一次数据。这里的智能算法很不错,如果用户来到这个屏幕或获得通知,它会将获取频率重置为小的一个(每3秒更新一次),如果没有事件发生,则开始丢弃,例如30秒,以减少对服务器
你总是可以反过来做到这一点。您可以使用非常低的频率手动获取数据(例如1分钟),以便在通知失败时进行回退。然后每次收到通知时获取数据。你必须再次偷偷摸摸,因为如果很多通知开始进入你将再次有太多的服务器调用。因此,您需要以某种方式锁定对服务器的调用,或者您可以在通知中发送“预览”数据并仅显示该数据。这意味着您只需发送一个前缀并显示“嗨,你好......”或图片“发给你一张照片”......而不是完整信息...
此问题的另一个问题(仅显示来自通知的数据)当您的设备数据不足时,事情可能会变得复杂。想象一下,你有5个朋友/对话,突然有来自第6个通知的通知来自你。你无法在你的视图中显示它,因为你没有这个人的名字,没有图像,根本没有数据......所以你需要再次建立一个漂亮的架构,以便从服务器上按需检索这些数据