Я портирую свое приложение Swift на Flutter и настраиваю FCM с использованием пакета firebase_messaging
. При использовании моего приложения Swift, если я отправляю тестовое сообщение с консоли Firebase либо непосредственно на токен, либо широко, и получаю уведомление, доставляемое в системный трей независимо от того, находится ли приложение на переднем плане или в фоновом режиме.
Это не ' это случилось с приложением Flutter. Когда приложение находится в фоновом режиме, я все равно получаю оба уведомления в системном трее, но когда на переднем плане не вызывается ни один из обратных вызовов onMessage
, onLaunch
или onResume
.
Можете ли вы определить, что я делать неправильно? Большое спасибо.
class _MapScreenState extends State<MapScreen> {
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
String _token;
String _launchMessage;
@override
void initState() {
super.initState();
_firebaseMessaging.requestNotificationPermissions(
const IosNotificationSettings(sound: true, badge: true, alert: true));
_firebaseMessaging.onIosSettingsRegistered
.listen((IosNotificationSettings settings) {
print("Settings registered: $settings");
});
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print('on message $message');
},
onResume: (Map<String, dynamic> message) async {
print('on resume $message');
},
onLaunch: (Map<String, dynamic> message) async {
print('on launch $message');
},
);
_firebaseMessaging.getToken().then((token) {
print('token: $token');
if (mounted) {
setState(() {
_token = token;
});
} else {
_token = token;
}
});
}