gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 19:13:01 31 4
gpt4 key购买 nike

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

简而言之:

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

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

有不同的通知类型:

  • 普通通知(包含告警信息)
  • 数据/静默通知(包含数据负载)
  • 混合通知(警报和数据)

对于前景、背景和暂停模式,它很清晰,并且在 iOS 和 Android 上运行良好。取决于通知类型,文档中所述的预期行为。

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

对于 iOS:如果应用程序终止(不是暂停),iOS 系统会收到一个标准的远程通知并显示在通知中心。没有委托(delegate)被调用,应用程序也没有进入后台模式(即使启用了远程推送后台模式也没有)。当用户单击通知时,应用程序将启动,并通过适当的委托(delegate)提供通知对象。总结:即使应用程序被强制退出,用户也可以在他的设备上接收推送通知。

对于 Android:当应用程序终止时,标准的远程推送通知不会显示在通知中心。 (一旦应用程序启动并置于后台,就会收到通知并正确显示。

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

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

但也有讨论表明远程推送始终显示在系统托盘中,即使应用程序已终止(Android push notifications not being received when app closed)。这与 iOS 的行为相同。

直截了当:在 Android 上是否可以向设备的系统托盘发送远程推送通知,即使应用已终止/强制退出/未运行?

最佳答案

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

通知未送达的问题是由华为的 EMUI 和特定的节电设置引起的。在华为 P8、P9 和许多其他带有 EMUI 的设备上,应用程序在未运行时不允许接收通知。他们必须在节电设置中明确授权。

关于android - 远程推送通知和终止的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44532270/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com