onBackgroundMessage 未被称为颤振消息传递

时间:2021-02-13 04:39:11

标签: flutter firebase-cloud-messaging

在我的 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,
    };

1 个答案:

答案 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,
    );
  }
 }