繁体   English   中英

远程推送通知和终止的应用程序

[英]Remote Push Notifications and terminated Apps

我的问题是有关终止该应用程序时iOS和Android设备上的标准远程推送通知的信息。

简而言之:

有不同的应用程序状态/模式:

  • 前景
  • 背景
  • 暂停
  • 终止

有不同的通知类型:

  • 正常通知(包含警报信息)
  • 数据/静默通知(包含数据有效载荷)
  • 混合通知(警报和数据)

对于前景,背景和暂停模式,它很明显,并且在iOS和Android上效果很好。 根据通知类型,文档中将说明预期的行为。

但是,当该应用终止时,iOS和Android的远程通知似乎存在本质区别。

对于iOS:如果该应用已终止(未挂起),则iOS系统会收到标准的远程通知,并将其显示在通知中心。 没有调用任何委托,并且该应用程序未置于后台模式(即使启用了远程推送后台模式也是如此)。 当用户单击通知时,将启动应用程序,并通过适当的委托提供通知对象。 总结:即使该应用被强制退出,用户仍可以在其设备上接收推送通知。

对于Android:应用终止后,通知中心不会显示标准的远程推送通知。 (该应用一旦启动并进入后台,通知就会正确接收并显示。

该文档非常不清楚,因为仅提到了前台和后台模式。 https://firebase.google.com/docs/cloud-messaging/concept-options https://firebase.google.com/docs/cloud-messaging/android/receive

有许多讨论得出的结论是,强制退出应用程序后,远程通知未显示在系统托盘(通知中心)中。 但是,关于设备重启后而不启动应用程序的预期行为的讨论很少。

但是,也有讨论表明即使应用程序已终止( 在应用程序关闭时未收到Android推送通知) ,远程推送仍始终显示在系统托盘中。 这与iOS的行为相同。

切入要点:即使应用程序已终止/强制退出/未运行,Android上是否也可以将远程推送通知发送到设备的系统托盘?

我现在可以回答我自己的问题:可以在应用未运行时将推送通知发送到Android设备(在通知中心)。

无法发送通知的问题是由华为的EMUI和特定的省电设置引起的。 在华为P8,P9以及可能带有EMUI的许多其他设备上,当应用程序不运行时,它们不会收到通知。 必须在节电设置中明确授权它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM