android - Flutter:前台通知在 Firebase 消息传递中不起作用

当应用程序处于前台时,我需要使用本地通知显示 Firebase 通知,但它不起作用。

  FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin=new FlutterLocalNotificationsPlugin();

  static  FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
  static StreamController<Map<String, dynamic>> _onMessageStreamController =
  StreamController.broadcast();
  static StreamController<Map<String, dynamic>> _streamController =
  StreamController.broadcast();
  static final Stream<Map<String, dynamic>> onFcmMessage =
      _streamController.stream;

  @override
  void initState() {
    super.initState();

    var android=AndroidInitializationSettings('mipmap/ic_launcher.png');
    var ios=IOSInitializationSettings();
    var platform=new  InitializationSettings(android,ios);
    flutterLocalNotificationsPlugin.initialize(platform);

    firebaseCloudMessaging_Listeners();
  }

这是 Firebase 代码

 void firebaseCloudMessaging_Listeners() {

if (Platform.isIOS) iOS_Permission();

_firebaseMessaging.getToken().then((token) {
  print("FCM TOKEN--" + token);
});
_firebaseMessaging.configure(
  onMessage: (Map<String, dynamic> message) async {
    print('on message $message');
    showNotification(message);
  },
  onResume: (Map<String, dynamic> message) async {
    print('on resume $message');
  },
  onLaunch: (Map<String, dynamic> message) async {
    print('on launch $message');
  },
);


}

这是 showNotification 方法

 void showNotification(Map<String, dynamic> msg) async{
    print(msg);
    var android = new AndroidNotificationDetails(
        'my_package', 'my_organization', 'notification_channel', importance: Importance.Max, priority: Priority.High);
    var iOS = new IOSNotificationDetails();
    var platform=new NotificationDetails(android, iOS);
    await flutterLocalNotificationsPlugin.show(
      0,'My title', 'This is my custom Notification', platform,);
  }

和 Firebase 响应

{notification: {title: Test Title, body: Test Notification Text}, data: {orderid: 2, click_action: FLUTTER_NOTIFICATION_CLICK, order name: farhana}}

最佳答案

您可以在 FlutterFire 文档中找到答案 https://firebase.flutter.dev/docs/migration/#messaging

您只需在代码中添加以下行

    FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(alert: true, badge: true, sound: true);

https://stackoverflow.com/questions/54643294/

相关文章:

dart - 使用 Flutter,如何在 iOS 上触发 TextField 的 onSubmit

flutter - 如何在 Flutter 中将图像上传到服务器?

dart - flutter 位置堆栈小部件在中心

dart - 如何在 Flutter 中显示动画图片?

flutter - 禁用 flutter 中的文本编辑字段

flutter - SliverList 中的动画变化

dart - Flutter - 中心的 FloatingActionButton

flutter - 所有卡片的 TextField 值更改

linux - 设置 flutter 路径时遇到问题 - 找不到 flutter 命令

json - 将 Firebase 中的数据序列化为 Flutter 的 Dart 对象的最佳方法是