在我的 Flutter 应用程序上使用 firebase messaging
时遇到了令人沮丧的体验,因为在发送请求后应用程序在后台时没有触发 onBackgroundmessage
。我想知道原因,因为这是我的应用需要的核心功能。
Future initialize(context) async{
_firebaseMessaging.configure(
onBackgroundMessage: Platform.isIOS ? null:_myBackgroundMessageHandler,
);
}
Future<dynamic> _myBackgroundMessageHandler
(Map<String, dynamic> message) async {
print("onBackground Message called");
fetchRideInfoInBackground();
return Future<void>.value();
}
}
通知有效载荷
const message = {
notification: {
title: 'New Incoming Request',
body: `New incoming ${service} request`,
},
data: { orderId: orderId },
android: {
ttl: 30,
priority: 'high',
notification: {
click_action: 'FLUTTER_NOTIFICATION_CLICK',
},
},
tokens: driversRegistrationToken,
};
答案 0 :(得分:0)
我没有看到整个文件,但我认为您的 _myBackgroundMessageHandler
不是顶级函数。
使其成为顶级或静态,之后它应该可以工作。
编辑:示例
Future<dynamic> _myBackgroundMessageHandler (Map<String, dynamic> message) async {
print("onBackground Message called");
fetchRideInfoInBackground();
return Future<void>.value();
}
class PushHandler {
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
Future initialize(context) async{
_firebaseMessaging.configure(
onBackgroundMessage: Platform.isIOS ? null:_myBackgroundMessageHandler,
);
}
}