我在开发一个应用程序,我不能收到通知时,电话锁定的FCM。
_fcm.configure(
onMessage: (Map<String, dynamic> message) async {
print("onMessage: $message");
AwesomeNotifications().createNotification(
content: NotificationContent(
id: 100,
channelKey: "basic_channel",
title: message['notification']['title'],
body: message['notification']['body'],
showWhen: true,
autoCancel: true));
},
onLaunch: (Map<String, dynamic> message) async {
print("onLaunch: $message");
},
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
},
);
我使用了firebase和Awesome通知插件来显示通知。
有人能帮帮我吗,我困在这里谢谢
我可以给你推荐的是改变函数,你可以实现如下所示:
void subscribeChannel(String data) async =>
await FirebaseMessaging.instance.subscribeToTopic(data);
void unsubscribeChannel(String channelId) async =>
await FirebaseMessaging.instance.unsubscribeFromTopic(channelId);
void listenNotificationEvents() {
FirebaseMessaging.instance.getInitialMessage().then(
(value) async {
if (value != null) setLocalNotification(value);
},
);
FirebaseMessaging.onMessage.listen((event) {
if (event.data.isNotEmpty) setLocalNotification(event);
});
FirebaseMessaging.onMessageOpenedApp.listen((event) {
if (event.data.isNotEmpty) changeScreen(event.data);
});
}
这些功能基本上是让firebase设置所有功能,并允许在应用程序被杀死或处于后台时也接收通知。
在MaterialApp类中,您需要使用这个。
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);
try {
FirebaseMessaging.onBackgroundMessage(
(message) => onBackgroundMessage(message.data));
} catch (_) {}
最后,如果你收到一个通知,并且应用程序是打开的,firebase将执行块代码中的所有内容,所以最后的改变是在onMessage中设置本地通知的设置。
如果这对你有帮助,请告诉我。