android - 应用程序关闭时推送通知不起作用 - 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 设备上进行了测试,并且可以正常工作。
解决方案
在颤振的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" ...>
推荐阅读
- android - 用高程完成两个面板布局的最有效方法是什么?
- windows - 从“Matlab”调用时,如何在成功分析提交的作业后退出“abaqus”命令窗口到“Matlab”脚本
- tensorflow - tf.keras.layers 中的转置卷积
- matlab - Matlab:ode15i 求解器引发尺寸错误,我看不到在哪里
- c - 无法在代码中找到错误的原因
- asp.net-core - 如何以编程方式将目录角色分配给 Azure AD 中的用户
- sql-server - 如何基于其他列 SQL Server 2012 创建列
- sql - Sql 查询 - 我在一个表中有三列,我需要将每列数据检查到另一个表中
- sass - 更新到 Gulp 4.0 时出现 AssertionError
- java - SendGrid 中的对象处理列表