首页 > 解决方案 > 应用程序关闭时推送通知不起作用 - Flutter

问题描述

当应用程序关闭时,我的 Android 不会收到来自 Firebase 的推送通知,但如果我打开应用程序,一切正常。这是我的主要活动:

package com.imperio.app

import io.flutter.embedding.android.FlutterActivity

class MainActivity: FlutterActivity() {
}

而我的 Flutter 配置:

void configure() {
    _firebaseMessaging.requestNotificationPermissions();

    _firebaseMessaging.configure(
      onLaunch: (params) {
        _bloc.onEventChanged(DispatchLaunch(params));
        return null;
      }, 
      onMessage: (params) {
        _bloc.onEventChanged(DispatchMessage(params));
        return null;
      }, 
      onResume: (params) {
        _bloc.onEventChanged(DispatchLaunch(params));
        return null;
      }
    );  
  }

当应用程序打开时,我可以正常接收通知。我看到有些人更改了 de MainActivity,但是在嵌入 v2 之后,Google 文档对此只字未提。

我添加了在 Android Manifest 中单击的通知:

  <intent-filter>
      <action android:name="FLUTTER_NOTIFICATION_CLICK" />
      <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>

问题发生在 Android 10 中,我在 Android 8 设备上进行了测试,并且可以正常工作。

标签: androidflutterpush-notification

解决方案


在颤振的firebase消息传递文档中,您必须添加

 <intent-filter>
  <action android:name="FLUTTER_NOTIFICATION_CLICK" />
  <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

mainfest.xml 的内部标记

并添加 Application.java 并粘贴此代码

import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;

public class Application extends FlutterApplication implements 
PluginRegistrantCallback {
  @Override
  public void onCreate() {
   super.onCreate();
   FlutterFirebaseMessagingService.setPluginRegistrant(this);
  }

  @Override
  public void registerWith(PluginRegistry registry) {
  GeneratedPluginRegistrant.registerWith(registry);
   }
  }

在 AndroidManifest.xml 中设置应用程序的名称属性。这通常位于 /android/app/src/main/ 中。

<application android:name=".Application" ...>

您可以在https://pub.dev/packages/firebase_messaging中获得完整的文档


推荐阅读