Far*_*ana 10 android push-notification dart flutter firebase-cloud-messaging
我需要使用本地通知在应用程序处于前台时显示Firebase通知,但无法正常工作。
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin=new FlutterLocalNotificationsPlugin();
static FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
static StreamController<Map<String, dynamic>> _onMessageStreamController =
StreamController.broadcast();
static StreamController<Map<String, dynamic>> _streamController =
StreamController.broadcast();
static final Stream<Map<String, dynamic>> onFcmMessage =
_streamController.stream;
@override
void initState() {
super.initState();
var android=AndroidInitializationSettings('mipmap/ic_launcher.png');
var ios=IOSInitializationSettings();
var platform=new InitializationSettings(android,ios);
flutterLocalNotificationsPlugin.initialize(platform);
firebaseCloudMessaging_Listeners();
}
Run Code Online (Sandbox Code Playgroud)
这是Firebase代码
void firebaseCloudMessaging_Listeners() {
if (Platform.isIOS) iOS_Permission();
_firebaseMessaging.getToken().then((token) {
print("FCM TOKEN--" + token);
});
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print('on message $message');
showNotification(message);
},
onResume: (Map<String, dynamic> message) async {
print('on resume $message');
},
onLaunch: (Map<String, dynamic> message) async {
print('on launch $message');
},
);
}
Run Code Online (Sandbox Code Playgroud)
这是showNotification方法
void showNotification(Map<String, dynamic> msg) async{
print(msg);
var android = new AndroidNotificationDetails(
'my_package', 'my_organization', 'notification_channel', importance: Importance.Max, priority: Priority.High);
var iOS = new IOSNotificationDetails();
var platform=new NotificationDetails(android, iOS);
await flutterLocalNotificationsPlugin.show(
0,'My title', 'This is my custom Notification', platform,);
}
Run Code Online (Sandbox Code Playgroud)
和Firebase响应
{通知:{标题:测试标题,正文:测试通知文本},数据:{订单编号:2,click_action:FLUTTER_NOTIFICATION_CLICK,订单名称:farhana}}
您可以在 FlutterFire 文档中找到答案 https://firebase.flutter.dev/docs/migration/#messaging
您只需将以下行添加到代码中
FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(alert: true, badge: true, sound: true);
Run Code Online (Sandbox Code Playgroud)
GitHub 存储库上记录了与此相关的软件包的一个活跃问题。Firebase 消息传递和本地通知无法在 iOS 上协同工作,因为您只能注册一个委托来接收通知。
查看: https: //github.com/MaikuB/flutter_local_notifications/issues/111
还有一个活跃的颤振问题: https://github.com/flutter/flutter/issues/22099
| 归档时间: |
|
| 查看次数: |
3702 次 |
| 最近记录: |