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

时间:2017-12-10 03:18:50

标签: android ios mobile push-notification

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

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

<强>优势

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

答案 1 :(得分:1)

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

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

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

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

希望这会对你有所帮助。