我正在开发一个使用 FCM 推送通知的应用程序,当应用程序在后台或终止并收到新通知时,我需要将此通知的数据保存在本地(SQLITE)中,而无需单击通知或再次重新打开应用程序,除非单击,否则不会在应用程序中读取通知。有什么建议?
这是我的 NotificationHandler.dart
import 'dart:async';
import 'dart:io';
import 'package:eshaar/model/message.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:intl/intl.dart';
import 'package:eshaar/model/database_helper.dart';
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
new FlutterLocalNotificationsPlugin();
Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) async {
print("onBackgroundMessage: $message");
//_showBigPictureNotification(message);
return Future<void>.value();
}
Future onSelectNotification(String payload) async {
}
class NotificationHandler {
FirebaseMessaging _fcm = FirebaseMessaging();
StreamSubscription iosSubscription;
DatabaseHelper db = new DatabaseHelper();
static final NotificationHandler _singleton =
new NotificationHandler._internal();
factory NotificationHandler() {
return _singleton;
}
NotificationHandler._internal();
initializeFcmNotification() async {
var initializationSettingsAndroid =
new AndroidInitializationSettings('mipmap/ic_launcher');
var initializationSettingsIOS …Run Code Online (Sandbox Code Playgroud) 在某些Android设备上,当Firebase.instance.getToken出现时,会出现此异常。尽管 api key 支持所有 firebase 安装服务。
Future<String> getDeviceToken() async {
try {
String? token;
token = await _firebaseMessaging.getToken() ?? '';
return Future.value(token);
} catch (e) {
return Future.value("");
}
}
Run Code Online (Sandbox Code Playgroud)