【发布时间】:2022-10-20 17:38:18
【问题描述】:
我正在使用 Firebase Cloud Messaging(FCM) 向我的 Flutter 应用发送推送通知。我需要在 Android 的前台显示通知,所以尝试了 FlutterFire 文档中提到的插件 -flutter_local_notifications,但它似乎不适用于所有设备。我发现它只能在一台运行 Android 6 的设备上运行。
我在AndroidManifest.xml 中添加了这一行 -
<meta-data
android:name="com.google.firebase.messaging.high_importance_channel"
android:value="high_importance_channel"/>
我如何在接收 FCM 消息时触发本地通知 -
// local notif initialisation //
var initializationSettingsAndroid = new AndroidInitializationSettings('@mipmap/ic_launcher');
var initializationSettingsIOS = new IOSInitializationSettings();
var initializationSettings = new InitializationSettings(android: initializationSettingsAndroid, iOS: initializationSettingsIOS);
flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();
flutterLocalNotificationsPlugin.initialize(initializationSettings, onSelectNotification: onSelectNotification);
/// Foreground
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
if (message.notification != null) {
print('Foreground (onMessage): Title:${message.notification.title}, Subtitle:${message.notification.body}, Data:${message.data.toString()}');
remoteMessage = message;
var data = json.decode(message.data['metadata']);
showNotification(
1234,
"${message.notification.title}",
"${message.notification.body}",
"$message",
);
}
});
我也尝试过像这样创建自定义通知通道
AndroidNotificationChannel channel = AndroidNotificationChannel(
'high_importance_channel', // id
'High Importance Notifications', // title
description: 'This channel is used for important notifications.', // description
importance: Importance.max,
);
await flutterLocalNotificationsPlugin
.resolvePlatformSpecificImplementation<AndroidFlutterLocalNotificationsPlugin>()
?.createNotificationChannel(channel);
我不确定我是否遗漏了什么?更高的 Android API 级别是否有任何额外的步骤。插件的自述文件中有一个标题为Release build configuration 的注释,要求对 ProGuard 文件进行自定义,我也遵循了这些步骤,但对我的情况没有任何帮助。在这个问题上寻求一些帮助。
依赖版本:
firebase_core: ^1.13.1
firebase_messaging: ^11.2.8
flutter_local_notifications: ^9.2.0
Flutter SDK 版本:Flutter 2.10.2
【问题讨论】:
标签: android flutter firebase-cloud-messaging flutter-local-notification foregroundnotification