flutter 息屏后、应用程序后台时无法接收到推送通知

发布于 1周前 作者 nodeper 来自 Flutter

flutter 息屏后、应用程序后台时无法接收到推送通知

flutter_local_notifications
awesome_notifications

都不行,当打开屏时,才会恢复通知,而且电源限制优化已经关了


flutter 息屏后、应用程序后台时无法接收到推送通知
5 回复

试一下改成前台服务

更多关于flutter 息屏后、应用程序后台时无法接收到推送通知的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


有没有个 demo 我目前尝试的是 FlutterForegroundTask.wakeUpScreen(); 然后再发通知,导致屏幕都无法被点亮,如果使用 stopForegroundService 时,前台服务的通知不会被关闭并自动删除 ,这样怎么能做到跟普通推送一样

而且好像使用 flutter_local_notifications 启动 ForegroundService 前台服务后,只能显示一条通知,只有这一条关闭后才会再推送一条

我当时是 flutter 调用 MethodChannel 到 native 端,然后在 native 端跑一个循环任务

你可以把前台服务理解成那个通知栏就是服务载体,通知在服务才在,自然不能关闭

整个问题的核心应该是安卓的保活机制,和 flutter 没什么关系,可以按这个关键字去搜索相关解决方法

关于Flutter应用在息屏后或应用程序处于后台时无法接收到推送通知的问题,这通常与多个因素有关。以下是一些可能的解决方案和排查思路:

  1. 检查推送服务配置

    • 确保Firebase或其他推送服务(如极光推送)已正确配置,并在Flutter项目中正确集成了相应的SDK。
    • 对于Firebase,检查Info.plistFirebaseAppDelegate.swift(或AppDelegate.m)中的配置是否正确。
  2. 检查应用权限

    • 确保应用已获得了推送通知的权限。在iOS上,这需要在Info.plist中声明相关权限,并在用户首次打开应用时请求。
    • 对于Android,检查是否在AndroidManifest.xml中正确配置了推送相关的权限和服务。
  3. 处理后台消息

    • 在Flutter应用中,确保已正确处理后台消息。这通常需要在FirebaseMessaging中添加相应的回调方法。
  4. 设备和网络状态

    • 确认设备已连接到网络,并且网络状态良好。
    • 检查设备是否处于省电模式或类似限制下,这可能会影响推送通知的接收。
  5. 推送服务限制

    • 了解并遵守推送服务的使用限制和规定,例如iOS对后台运行时间的限制。

综上所述,解决Flutter应用在息屏后或后台时无法接收推送通知的问题需要综合考虑多个方面。建议逐一排查上述可能的原因,并根据实际情况进行调整和优化。

回到顶部