无法使用颤振在android中获取后台通知

Posted

技术标签:

【中文标题】无法使用颤振在android中获取后台通知【英文标题】:Can not get background notifications in android using flutter 【发布时间】:2021-11-02 04:08:29 【问题描述】:

我正在使用 FCM 通过颤振推送通知,前台通知效果很好,但在后台时它没有收到任何通知。

这是我的代码

class Home extends StatefulWidget 

@覆盖 _HomeState createState() => _HomeState();

class _HomeState extends State<Home> 
  String token = '';
  final FirebaseMessaging firebaseMessaging = FirebaseMessaging.instance;

  @override
  void initState() 
    getToken();

    firebaseMessaging.requestPermission(
        alert: true, badge: true, provisional: true, sound: true);

    FirebaseMessaging.onMessage.listen((RemoteMessage message) 
      print("onMessage: $message");
    );


    FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) 
      print("onMessageOpenedApp: $message");
    );


    super.initState();
  

  void getToken() async 
    token = (await firebaseMessaging.getToken())!;
  

  @override
  Widget build(BuildContext context) 
    return Scaffold(
      body: Center(child: Text("Token : $token")),
      floatingActionButton: FloatingActionButton(
        onPressed: () 
          print(token);
        ,
        child: Icon(Icons.print),
      ),
    );
  

【问题讨论】:

代码在您的帖子中不可见。是否允许通知权限? 现在显示@HuthaifaMuayyad 【参考方案1】:

您需要定义一个***的命名处理程序, 自上次 firebase_messaging 10.0.6 以来。通知将在后台运行 首先更新你的 firebase_messaging 10.0.6

/// 定义一个***的命名处理程序,后台/终止消息将 /// 称呼。 /// /// 要验证一切是否正常,请查看本机平台日志。

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async 
  // If you're going to use other Firebase services in the background, such as Firestore,
  // make sure you call `initializeApp` before using other Firebase services.
  await Firebase.initializeApp();
  print('Handling a background message $message.messageId');

查看完整示例:firebase_messaging/example

如果你需要一个真实的项目示例complete example

【讨论】:

不幸的是我添加了它,它不起作用 你做错事了@

以上是关于无法使用颤振在android中获取后台通知的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Push Notifications:无法在后台或应用关闭时接收通知

当应用程序被杀死时,无法在推送通知单击时导航到特定屏幕(Flutter android)

对于Xamarin Android,我无法处理点击事件的后台通知

在后台无法获取位置更改通知

当应用程序处于后台状态(Android)时,远程推送通知提示无法在本机反应中工作

在我的颤振(android)应用程序中 - Firebase 推送通知在一段时间后停止接收每个用户