You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何在onMessage监听的RemoteMessage中调用Map<String,dynamic>入参函数

调用方法说明

首先明确RemoteMessage对象的结构,你写的函数已经做了平台适配,只要把RemoteMessage转换为Map传入即可,分两个场景的调用方式如下:

1. onMessage 前台接收消息场景调用

onMessage监听的回调会直接返回RemoteMessage实例,调用示例:

FirebaseMessaging.onMessage.listen((RemoteMessage message) {
  // 传入RemoteMessage的全量Map结构
  String rideRequestId = getRideRequestId(message.toMap());
  // 后续业务逻辑处理,比如弹窗提示乘客叫车请求
  print('收到乘车请求ID:$rideRequestId');
});

2. onResume 点击通知唤起应用场景调用

这个场景对应FirebaseMessaging.onMessageOpenedApp监听,调用方式和onMessage一致:

FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
  String rideRequestId = getRideRequestId(message.toMap());
  // 后续业务逻辑处理,比如直接跳转到对应订单详情页
  print('点击通知唤起应用,乘车请求ID:$rideRequestId');
});

可选优化:空安全兼容

建议给你的原有函数加上空值判断,避免字段缺失时抛出异常:

String getRideRequestId(Map<String,dynamic> message){
  if(Platform.isAndroid){
    return message['data']?['ride_request_id'] ?? "";
  }else{
    return message['ride_request_id'] ?? "";
  }
}

内容的提问来源于stack exchange,提问作者Hassan Quraishi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:45:01