我正在尝试用Flutter构建一个跨平台的应用程序(目前只在Android上工作),当操作正在进行时通知用户(志愿消防员),他们可以发送反馈,如果他们将参与。我用FCM通知和数据负载完成了这一点。现在我正在尝试实现一个函数,它不会显示通知并告诉服务器,他们没有时间。我正在使用flutter_local_notifications进行通知。当我在应用程序中或有应用程序最小化时,它的工作完美。但是当在应用程序抽屉中向上滑动时“杀死”应用程序时,我不再会得到通知。
我期待它显示,因为它是一个只有数据的消息(没有提供通知字段)。该函数应该在客户端实现,因此它不应该向服务器发送停止发送通知的请求。是否有任何方法可以在FirebaseMessaging.onBackgroundNotification(函数)中运行一段单独的代码,或者可以防止用户终止应用程序?有什么后台服务我可以实现吗?我找了几个小时,但没有结果。我希望有一个解决方案,在两个平台(iOS,Android)上都能工作
2条答案
按热度按时间kmb7vmvb1#
当应用程序终止时,您可以通过
onBackgroundMessage
处理程序处理后台消息。当您的应用程序处于后台或终止时,仅数据消息被设备视为低优先级,并将被忽略。但是,您可以通过发送FCM负载上的附加属性来显式地增加优先级。https://firebase.flutter.dev/docs/messaging/usage
ecr0jaav2#
我发现我是个笨蛋。我通过禁用电池优化并将POST_NOTIFICATIONS权限添加到我的清单来解决它。如果我浪费了任何人的时间,我很抱歉,我一定是在文档中读了一遍。