- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
当应用在前景时,我会收到通知,而不是在后台应用程序时收到通知。另外,我有2个小时或更长时间的Google-ed/stackoverflow-ed,但能够解决这个问题。
My Configurations are :
firebase_auth: ^0.10.0
firebase_messaging: ^5.0.0
The manifest is like this:
The code is like this:
final notifications = new FirebaseMessaging();
class AppNotifications {
static String fcmToken = '';
static Future<Null> init() async {
appLogs("AppNotifications init");
notifications.requestNotificationPermissions(const IosNotificationSettings(sound: true, badge: true, alert: true));
await configure();
fcmToken = await notifications.getToken();
appLogs("FCM TOKEN : " + fcmToken);
notifications.onTokenRefresh.listen((newToken) {
fcmToken = newToken;
appLogs("FCM TOKEN onTokenRefresh: " + fcmToken);
});
await updateFCMToken();
}
static Future<Null> configure() async {
appLogs("AppNotifications Configure");
notifications.configure(onMessage: (msg) {
appLogs('FCM onMessage: ' + msg.toString());
}, onLaunch: (lun) {
appLogs('FCM onLaunch: ' + lun.toString());
}, onResume: (res) {
appLogs('FCM onResume: ' + res.toString());
});
}
static Future<Null> updateFCMToken() async {
auth.currentUser.fcmToken = fcmToken;
await updateUserInSharedPreference();
}
}
I am calling the function like this:
class HomeScreenState extends State<HomeScreen> {
@override
void initState() {
super.initState();
Future.delayed(Duration(milliseconds: 100), () async {
await AppNotifications.init();
});
}
..... ....
I am using postman for sending the notification :
My logs :
**(App is Foreground)** I/flutter (31888): APPLOGS : FCM onMessage: {notification: {title: Test notification title, body: Test notification body}, data: {status: done, id: 1, foo: bar, click_action: FLUTTER_NOTIFICATION_CLICK}}
**(App is Background)** W/FirebaseMessaging(31888): Missing Default Notification Channel metadata in AndroidManifest. Default value will be used.
Flutter doctor :
[✓] Flutter (Channel stable, v1.2.1, on Mac OS X 10.14.4 18E226, locale en-GB)
• Flutter version 1.2.1 at /Users/Ajay/SDK/flutter
• Framework revision 8661d8aecd (3 months ago), 2019-02-14 19:19:53 -0800
• Engine revision 3757390fa4
• Dart version 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at /Users/Ajay/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
• All Android licenses accepted.
[✓] iOS toolchain - develop for iOS devices (Xcode 10.2.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 10.2.1, Build version 10E1001
• ios-deploy 1.9.4
• CocoaPods version 1.6.0
[✓] Android Studio (version 3.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 34.0.1
• Dart plugin version 182.5215
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
[!] VS Code (version 1.33.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
✗ Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (1 available)
• ONEPLUS A5000 • b47e8396 • android-arm64 • Android 9 (API 28)
最佳答案
lost my 2 days to fix this issue, it may helpful for you.notification tag only for showing notification. you can access only data content on onResume/onLaunch.
If you want handle notification message inside onResume/onLaunch add those messages in data tag also, Then you can do what ever you want.
refer more detail on this link
发送此通知消息
{
"notification": {
"body": "body",
"title": "title"
},
"priority": "high",
"data": {
"body": "body",
"title": "title"
"click_action": "FLUTTER_NOTIFICATION_CLICK",
"id": "1",
"status": "done",
"image": "https://ibin.co/2t1lLdpfS06F.png",
},
"to": <your token>
}
you will receive below information onResume or onLaunch, your notification tag will be empty here
{notification: {}, data: {image: https://ibin.co/2t1lLdpfS06F.png, google.original_priority: high, google.sent_time: 1560858283888, google.delivered_priority: high, body: body , title: title, click_action: FLUTTER_NOTIFICATION_CLICK, google.message_id: 0:1560858283908500%eefdc741eefdc741, collapse_key: <package>, google.ttl: 2419200, from: <from>, id: 1, status: done}}
you can use title and body which is added in data tag.
关于flutter - firebase_messaging onResume 和 onLaunch 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56025164/
我的应用程序结构有点乱,但我必须先添加这个补丁,然后我会重新构建整个逻辑。问题是我首先检查是否有 firebase 用户,如果有,我使用 StreamBuilder 从 Firestore 获取当前用
我想检测 Google Chrome 信息亭模式。我正在使用此代码来检测信息亭模式。 chrome.app.runtime.onLaunched.addListener(function (launc
我正在尝试了解应用程序生命周期。 场景:我正在启动一个空白应用程序;之后我有意退出该应用程序并打开一个单独的应用程序。一段时间后,我查看任务管理器。空白应用程序似乎已暂停。然后我再次启动空白应用程序(
我正在构建一个使用 FCM 接收推送通知的应用。 我想在点击通知时转到特定屏幕(例如,用户的个人资料)。 在 Android 上,当应用程序刚刚关闭(而不是“被杀死”)时,它工作得很好,但是当应用程序
我对 ExtJS 很陌生,我花了几个小时试图解决这个问题,但没有成功。我有一个带有“onLaunch”函数的 Controller ,但它从未被调用。 我将 Controller 的 .js 文件包含
我用 Flutter 构建了一个 Android 应用,并在该应用上集成了 Firebase Messaging。 我一直遇到一个问题,如果 Android 设备在应用程序关闭时收到通知;该通知将无限
当应用在前景时,我会收到通知,而不是在后台应用程序时收到通知。另外,我有2个小时或更长时间的Google-ed/stackoverflow-ed,但能够解决这个问题。 My Configuration
我想做什么 当用户点击通知托盘中的 fcm 通知时,我想导航到特定屏幕。 我的密码 我遵循了与 pub.dev 上提到的 6.0.9 版完全相同的说明。 这是我的实现: _fcm.configure(
我的问题似乎与此类似 firebase_messaging onResume and onLaunch not working但是我认为该解决方案对我不起作用,因为我已经在尝试访问数据属性中的字段。当
我在我的 flutter 应用程序中使用 firebase_messaging,我希望能够调试 onLaunch 回调触发时发生的情况。 问题是它会在收到通知并终止应用程序时触发。 一定有办法调试它吧
当单击我的 Toast 通知时,将调用 OnLaunched 方法而不是 OnActivated。 e.Arguments 中没有任何内容 - 有什么想法吗? 我的 Toast 模板是默认的 Visu
我从应用程序代码的特定部分进行了以下 Ext.getElementById 调用,该调用在此上下文中调用时确实有效: init: function() { // template method
我是一名优秀的程序员,十分优秀!