【问题标题】:Notification not showing when the app is closed应用关闭时通知不显示
【发布时间】:2018-12-22 09:05:47
【问题描述】:

仅使用数据负载在应用关闭时不会收到任何通知,也不会触发onMessageReceive方法。

在下图中显示数据负载 click here to view parameter

回复是click here to view response

响应成功1但在redmi手机中没有收到任何通知。

【问题讨论】:

    标签: android android-notifications


    【解决方案1】:

    支持所有设备的基于 Fire 的推送通知就像一个迷宫。 推送通知有 3 种场景

    1. 前景(火FirebaseMessagingServiceonMessageReceived方法)
    2. 后台(无法触发 FirebaseMessagingService,但 firebase 服务会将其消息推送到设备的通知托盘
    3. App kill (can't fire FirebaseMessagingService firebase service push push their message into the device's Notification Tray)

    注意:当您从后台堆栈滑出时,一些中国设备(如小米、华硕、华为等)会强制停止您的应用程序,从而导致服务被终止。由于这个原因,firebase 服务没有运行,也无法将他们的通知推送到通知托盘中。

    在小米--安全-->权限-->自动启动,然后勾选你的应用。启用这意味着应用程序的任何服务始终在后台运行。然后您每次都会从您的应用中收到各种通知。

    如果你想了解更多,Check that 如果您想从您的应用程序访问特定设备的安全页面,请使用check this

    【讨论】:

    • 谢谢你。是的,这是一个安全权限问题“自动启动”。在 mi phon 中,我们主要需要获得“自动启动”权限。下面的链接有助于了解自动启动权限
    • 如果此答案似乎正确或与您要查找的内容相匹配,请勾选此答案为正确答案.. :)
    【解决方案2】:

    发送数据消息并使用onMessageReceived函数手动显示通知。

    【讨论】:

      【解决方案3】:

      当您在 JSON 中省略 priority 字段时,默认值将是正常的,这意味着 Firebase 将在适当的时候向您发送推送。

      通常,当您的应用关闭时,接收消息所需的时间比前台运行时要长。

      因此,如果您正在测试,您可以使用 "priority":"high" 更快地完成任务。

      但请记住删除该字段,因为最终用户会消耗大量电池

      要考虑的另一件事是,在某些设备(如华为)上,如果您可以在电源设置下执行此操作,您必须使应用程序受信任才能使用更多电源

      更新

      向令牌发送推送有时无法正常工作(因为令牌在开发期间会快速更改)并且每次刷新时都很难验证令牌。

      所以每次我测试推送时,我宁愿使用主题/包作为"to" 参数。

      如果您为应用订阅了某个主题,您可以使用仪表板查看工作人员,该仪表板会建议您的应用订阅的所有主题。

      【讨论】:

      • 在数据负载中添加“优先级”:“高”但响应没有变化或没有收到通知后
      • 我已经更新了答案,请尝试看看它是否有效
      • 相同的通知令牌在应用程序处于后台和前台的情况下正常工作,但在应用程序关闭时不起作用
      猜你喜欢
      • 1970-01-01
      • 2020-08-25
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      相关资源
      最近更新 更多