在iOS和Android上处理推送通知场景

我想为应用程序(包括iOS和Android)实现推送通知,并且需要在下列情况下进行说明。

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

在iOS和Android中如何处理以下情况:

  • 设备closures时
  • 当设备没有连接到3G或Wifinetworking
  • 当设备崩溃,需要重新启动
  • 当应用程序在前台
  • 当应用程序在后台
  • 当用户正在使用该应用程序
  • 当我的应用程序closures(未打开/启动)
  • 当推送通知是用户特定的并且两个用户共享相同的设备和应用时。 示例:如果夫妻共享同一设备,并使用推送通知的银行应用程序。
  • 如果设备由多个用户共享,您可以发送用户特定通知吗?
  • 当用户在多个设备上安装了应用程序时
  • 您能否一次性向用户注册的所有设备发送通知?
  • 您是否将设备types(iOS或Android)与注册ID一起存储在用户表中,还是有办法通过检查令牌或注册ID来区分设备types?
  • 你可以取消先前发送的通知,但是还没有阅读并发送新的通知?
  • Android推送通知在Kindle Fire上无法正常工作,并需要实施亚马逊设备消息传送
  • 还有什么我需要考虑或计划? 我知道处理注册和反馈服务

我会回答你的一些问题,具体到Android的思想。 不知道iPhone,如果它的类似或不。

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

它是用户特定的吗?

这取决于个人服务器的实施。

我们存储设备types吗?

我们可以。

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

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

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

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

当设备closures时:

答:IOS / Android服务器(不是你的服务器)将处理何时发送推送通知。 它检查设备是否可达。 我们可以定义IOS / Android服务器应该尝试发送推送通知的次数。

当设备没有连接到3G或Wifinetworking

答:没有关系到2G / 3G / Wi-Fi。 设备应通过任何networking连接到Internet。

当设备崩溃,需要重新启动

答:IOS / Android服务器检查设备是否可达。

当应用程序在前台

答:没有什么与前台应用程序相关的。

当应用程序在后台

答:没有关系在后台的应用程序。

当用户正在使用该应用程序

答:目前没有任何与应用程序相关的信息。

当我的应用程序closures(未打开/启动)

答:没有任何相关的应用程序是封闭的。

当推送通知是用户特定的并且两个用户共享相同的设备和应用时。 示例:如果夫妻共享同一设备,并使用推送通知的银行应用程序。

答:这取决于您在服务器上的实施方式。 您将为每个用户pipe理设备ID。 所以这是你的实现逻辑发送到同一个设备的多个用户。

如果设备由多个用户共享,您可以发送用户特定通知吗?

答:这取决于您在服务器上的实施方式。 您将为每个用户pipe理设备ID。 所以这取决于你的实现逻辑。

当用户在多个设备上安装了应用程序时

答:这取决于您在服务器上的实施方式。

您能否一次性向用户注册的所有设备发送通知?

答案是根据你的实现逻辑。

您是否将设备types(iOS或Android)与注册ID一起存储在用户表中,还是有办法通过检查令牌或注册ID来区分设备types?

答:是的,您需要存储设备types,以确定哪个服务器(IOS / Android),您需要发送推送通知的请求。

你可以取消先前发送的通知,但是还没有阅读并发送新的通知?

答:不可以取消请求。

Android推送通知在Kindle Fire上无法正常工作,并需要实施亚马逊设备消息传送

答:需要谷歌周围。

还有什么我需要考虑或计划? 我知道处理注册和反馈服务

答:需要谷歌周围。