Flutter 应用在 IOS 设备上运行时,收不到 FCM 推送通知。一旦应用程序进入后台或最小化,推送通知就会正常工作。
我为此使用了 firebase_messaging 和 flutter_local_notifications 插件。
initialize() async {
FirebaseMessaging messaging = FirebaseMessaging.instance;
SharedPreferences sharedPreferences = await
SharedPreferences.getInstance();
NotificationSettings settings = await messaging.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true,
);
if (settings.authorizationStatus == AuthorizationStatus.authorized) {
print('User granted permission');
} else if (settings.authorizationStatus ==
AuthorizationStatus.provisional) {
print('User granted provisional permission');
} else {
print('User declined or has not accepted permission');
}
messaging.getToken().then((token) {
print("FCM TOKEN:- $token");
sharedPreferences.setString("fcmToken", token.toString());
});
FirebaseMessaging.onMessage.listen((RemoteMessage event) {
print("message received");
print(event.notification!.body);
flutterLocalNotificationsPlugin.show(
1,
event.notification!.title.toString(),
event.notification!.body.toString(),
NotificationDetails(
android: AndroidNotificationDetails(
channel.id,
channel.name,
color: Colors.amber,
playSound: true,
icon: '@mipmap/ic_launcher',
),
));
});
FirebaseMessaging.onMessageOpenedApp.listen((message) {
print('Message clicked!');
});
}
有人可以帮我吗?
当您在onMessage中监听通知时,您仅添加android规范。请同时添加 IOS 规范。