flutter FirebaseMessaging.示例.getInitialMessage()返回空值

jchrr9hc  于 2023-02-05  发布在  Flutter
关注(0)|答案(1)|浏览(113)

在仔细尝试了其他答案后,似乎没有任何效果。
通知工作正常,当我点击它们,应用程序已经初始化。
当应用程序关闭或终止时,我无法将用户重定向到页面,因为getInitialMessage()的值为空。
例如,这将返回null,但它是我的Flutter应用程序的主页

@override
  void initState() {
    super.initState();
    FirebaseMessaging.instance
        .getInitialMessage() 
        .then((message) => print('Initial message: $message'))

Main.dart

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  await Firebase.initializeApp();

 
}

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
  await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(
    alert: true,
    badge: true,
    sound: true,
  );

  
  runApp(const FrontDeskApp());
}

谢谢

xxls0lw8

xxls0lw81#

这可能是因为您以错误的方式使用getInitialMessage()方法。
像下面这样修改你的main.dart并测试。

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);

  await FirebaseMessaging.instance.getInitialMessage().then((remoteMessage) {

    // whenever you open the app from the terminate state by clicking on Notification message, 
       here you will get your remoteMessage.

    // Set you App Screen Redirection here.

    // Once consumed, the RemoteMessage will be removed.

  });
  runApp(const MyApp());
}

更多参考请参见官方文件“处理通知交互”

相关问题