在iOS和Android上处理推送通知方案

Kev*_*ith 7 android push-notification apple-push-notifications ios google-cloud-messaging

我想为应用程序(iOS和Android)实现推送通知,并需要澄清以下方案.

我理解推送通知的工作原理和限制.我确实阅读了文档,但这让我困惑,并没有回答我的所有问题.

如何在iOS和Android中处理以下方案:

  • 设备关闭时
  • 当设备未连接到3G或Wifi网络时
  • 当设备崩溃并需要重启时
  • 当应用程序处于前台时
  • 当应用程序在后台时
  • 当用户当前正在使用该应用程序时
  • 当我的应用关闭时(未打开/启动)
  • 推送通知是特定于用户的,并且两个用户共享同一设备和应用程序.示例:如果丈夫和妻子共享同一设备并使用具有推送通知的银行应用程序.
  • 如果多个用户共享设备,您能发送用户特定通知吗?
  • 当用户在多个设备上安装App时
  • 您可以立即向用户注册的所有设备发送通知吗?
  • 您是否在User表中存储了带有registrationID的设备类型(iOS或Android),或者是否有办法通过检查令牌或registrationID来区分设备类型?
  • 您是否可以取消先前发送的尚未阅读的通知并发送新通知?
  • Android推送通知是否仍适用于Kindle Fire并且需要实施Amazon Device Messaging
  • 还有什么我需要考虑或计划的吗?我知道处理取消注册和反馈服务

Nar*_*esh 3

我会回答你的一些问题,特别是关于 Android 的想法。不知道iPhone有没有类似的。

  1. 当服务器触发通知时,设备会收到来自 Google Cloud 服务器的通知,并且与应用程序状态(正在运行、已关闭、后台或前台)没有任何关系。
  2. 如果在设备未连接到互联网(关闭或未连接到网络)时向设备发送通知,则只有在连接到网络时才会收到通知。但是,如果设备崩溃并在收到通知后重新启动,您将不会再次收到通知。

是特定于用户的吗?

这取决于各个服务器的实现。

我们是否存储设备​​类型?

我们可以。

我们可以区分iPhone和Android的ID吗?

是的,Android 设备 ID 的长度比 iPhone 的更长。

我们可以取消已经发送的通知吗?

不,据我所知,这是一种单向沟通渠道。