Firebase消息事件未在导航器内部触发

时间:2019-12-22 11:23:19

标签: firebase flutter firebase-cloud-messaging

我有一个包含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,但这没有帮助。

0 个答案:

没有答案