相关疑难解决方法(0)

Flutter - 如何获取当前上下文?

我正在使用 Firebase 云消息传递通知,当我在应用程序内部时收到通知后,我想显示一个对话框或小吃栏,我的问题是我正在我的小部件树(启动画面)顶部初始化 firebase 配置一旦应用程序启动)

_fireBaseMessaging.configure(
  onMessage: (Map<String, dynamic> message) async {
    dynamic data = message['data'];
    ................ // Adding a snackbar/alertdialog here doesn't work
  },
);
Run Code Online (Sandbox Code Playgroud)

显然,如果我设置了一个对话框或小吃栏,它就不会显示,因为我需要当前页面的上下文,有没有办法获取当前上下文?

我也尝试将它放在我的启动画面的构建小部件中,但是一旦我在另一个页面上,对话框仍然没有显示。

 @override
  Widget build(BuildContext context) {
    _fireBaseMessaging.configure(
      onMessage: (Map<String, dynamic> message) async {
        print("onMessage: $message");
        dynamic data = message['data'];
        if (data['id'] == '1') {
          newPro = true;
        } else if (data['id'] == '2') {
          print("THIS WORKS!!!");
          showDialog(
              context: context,
              builder: (context) => AlertDialog(
                    content: ListTile(
                      title: Text("TEST"),
                      subtitle: Text("TEST"),
                    ),
                    actions: <Widget>[
                      FlatButton( …
Run Code Online (Sandbox Code Playgroud)

firebase flutter firebase-cloud-messaging

10
推荐指数
4
解决办法
6577
查看次数

Flutter - Firebase Messaging Snackbar 未显示

这就是问题所在:应用程序在前台或后台(或终止)中都接收到通知,但在使用应用程序时用于通知的快捷栏不起作用。我是颤振的新手,所以也许我犯了一些大错误。

我在下面展示我的代码。如果您想了解更多信息,请询问并感谢您的帮助!

    // Import Package
    import 'dart:io';
    import 'package:app_gap_go/pages/admin/modifySingleMeeting.dart';
    import 'package:cloud_firestore/cloud_firestore.dart';
    import 'package:firebase_auth/firebase_auth.dart';
    import 'package:firebase_messaging/firebase_messaging.dart';
    import 'package:flutter/material.dart';
    // import 'package:flutter/rendering.dart';

    // Import Other Package
    import 'package:provider/provider.dart';

    // Import Pagine
    import './pages/wrapper.dart';
    import './pages/setting/settings.dart';
    import './pages/riunioni/riunioni.dart';
    import './pages/auth/register.dart';
    import './pages/admin/pannelloAdmin.dart';
    import './pages/admin/modifyMeetings.dart';

    // Import Utility
    import 'utility/themeData.dart';

    // Import Services
    import './services/authService.dart';

    // Import Models
    import './models/user.dart';

    void main() {
      // debugPaintSizeEnabled = true;   
      // debugPaintBaselinesEnabled = true;
      // debugPaintPointersEnabled = true; 
      runApp(MyApp());
    }

    class MyApp extends StatefulWidget {
      @override
      State<StatefulWidget> …
Run Code Online (Sandbox Code Playgroud)

dart firebase flutter firebase-cloud-messaging

4
推荐指数
1
解决办法
1839
查看次数