我有一个包含MaterialApp Navigator设置的Flutter应用程序。
runApp(
LocalizedApp(
delegate,
MaterialApp(
initialRoute: '/register',
routes: {
'/': (context) => Splash(),
'/test': (context) => Test(),
'/login': (context) => Login(),
'/register': (context) => Register(),
'/home': (context) => Home(),
},
)),
);
我正在尝试将Firebase Cloud Messaging与此集成,如果我在Home()
小部件中添加代码,则在收到通知时它不会得到回调。
@override
void initState() {
super.initState();
print('Build done');
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
_firebaseMessaging.configure(
onLaunch: (Map<String, dynamic> message) {
print('On Launch: ' + message['title']);
},
onMessage: (Map<String, dynamic> message) {
print('On Message: ' + message['title']);
},
onResume: (Map<String, dynamic> message) {
print('On Resume: ' + message['title']);
},
onBackgroundMessage: Platform.isIOS
? null
: DBManager.myBackgroundMessageHandler,
);
if (Platform.isIOS) {
_firebaseMessaging
.requestNotificationPermissions(const IosNotificationSettings(
badge: true,
sound: true,
alert: true,
));
_firebaseMessaging.onIosSettingsRegistered
.listen((IosNotificationSettings settings) {
print("Settings registered: $settings");
});
}
_firebaseMessaging.getToken().then((token) {
print(token);
});
}
我想在全球范围内注册FCM回调,但是我不确定在拥有导航器后如何在runApp
上进行注册。有人可以给我指点吗?
我查看了帖子here,但这没有帮助。