实现细粒度启用/禁用推送通知

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现细粒度启用/禁用推送通知相关的知识,希望对你有一定的参考价值。

我正在尝试实现的示例:在Facebook应用程序上,在通知设置下,我可以选择接收特定事件的推送通知,但不能接收其他事件。对于iosandroid应用程序,我想知道这里推荐的实现方法是什么。

选项1:这些用户选择的通知设置存储在后端的数据库中。在发送任何推送通知之前,我们检查数据库中的配置,并且仅在用户未针对该功能禁用推送通知时才发送推送通知。

选项2:通知设置仅存储在客户端。后端将始终使用每个功能的特定“主题”发送推送通知。如果用户已禁用该功能的推送通知,则客户端可以隐藏特定主题的所有通知。

选项3:我不知道的完全不同的东西?

大多数现代iOS / Android应用程序如何实现此功能?

答案

这是我的2美分。我目前正在为具有Android,iOS和Web实现的产品执行此操作。我们实现了选项1并在服务器端保留用户的过滤器设置。这是我现在能想到的几个优点。

优点:

  • 第一个优点是我们只需要实现一次逻辑而不是在3个位置执行,因此我们只需要在一个地方进行单元测试。
  • 如果我们需要更改逻辑,我们不需要制作新的Android / iOS版本,并且一次又一次地浏览Android和iOS的应用商店发布流程。这也需要时间。
  • 虽然从Google / Apple方面发送通知数量没有限制,但可以说有数百个通知被发送出去。在服务器端进行过滤将防止在您的服务器上花费额外的资金,这些服务器正在进行不必要的额外工作,即不断发送最终将被忽略的消息。
另一答案

这很简单但我们可以实现2种方式。

1)将您的推送通知过滤器响应发送到您的服务器,以便基于userid和deviceid将这些过滤器数据存储到后端,并且任何通知生成的时间服务器首先检入其数据库,如果任何字段的过滤器选项关闭,则服务器不发送通知如果为true,则服务器向mobile发送通知。这样我们就可以实现一个解决方案。

2)将您的推送通知过滤器响应发送到您的服务器以存储到数据库中,当用户登录到任何设备时,然后将此响应作为详细信息传递并将这些详细信息存储到本地(sqlite)数据库或共享首选项.Server将生成所有通知但是以编程方式首先检查这些通知的值是真还是假,因为我们将生成通知。

这两种方式都是有效的,但我需要先进行,因为服务器(后端)将为我们处理所有的事情。

希望这对你有所帮助。

以上是关于实现细粒度启用/禁用推送通知的主要内容,如果未能解决你的问题,请参考以下文章

如何启用和禁用解析推送通知 Android

如何正确禁用/启用推送通知

如何从应用程序 iOS 8 启用/禁用推送通知

从设置应用程序 ios 获取推送通知启用/禁用事件?

如何禁用或启用onMessageReceived的firebase推送通知?

在完成启动后或在我们的应用程序内启用/禁用推送通知