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 响应
{通知:{title:测试标题,正文:测试通知文本},数据:{orderid:2,click_action:FLUTTER_NOTIFICATION_CLICK,订单名称:farhana}}
解决方案
您可以在 FlutterFire 文档 https://firebase.flutter.dev/docs/migration/#messaging中找到答案
您只需将以下行添加到您的代码中
FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(alert: true, badge: true, sound: true);
推荐阅读
- go - golang paho mqtt 丢弃消息
- c - 无法在 C 中读取 (1280 x 960) .bmp 图像的位图数据
- javascript - 反应原生自动导入不建议反应原生视图
- mysql - 更改 SQL 数据库中的字符串值
- spaceship-operator - 宇宙飞船运算符<=>第一次出现是什么时候?
- java - 服务公私钥通信问题
- r - 如何使用 R 为 Google 距离矩阵 API 请求批处理数据帧?
- android - Jetpack Compose - 导航 - 脚手架 + NavHost 不工作
- c# - 如何在 EF6 中正确应用 1 对 1 的关系
- azure - 在接收数据之前在 azure sentinel 中设置分析规则