接收方 FCM 通知点击事件

Posted

技术标签:

【中文标题】接收方 FCM 通知点击事件【英文标题】:Receiver FCM notification click event 【发布时间】:2019-08-31 04:40:07 【问题描述】:

flutter如何接收通知点击事件?

我在 main.dart 上写了这段代码,但是 onMessage 处理事件不起作用。

此代码块也不能在后台运行。

当应用在后台 onMessage 函数不处理时。

ma​​in.dart

    FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
void ios_Permission() 
  _firebaseMessaging.requestNotificationPermissions(
      IosNotificationSettings(sound: true, badge: true, alert: true)
  );
  _firebaseMessaging.onIosSettingsRegistered
      .listen((IosNotificationSettings settings)
  
    print("Settings registered: $settings");
  );

void firebaseCloudMessaging_Listeners(BuildContext context) 
  if (Platform.isIOS) iOS_Permission();

  _firebaseMessaging.getToken().then((token)
    print("Token : $token");
  );

  _firebaseMessaging.configure(
    onMessage: (Map<String, dynamic> message) async 
      print('on message $message');
    ,
    onResume: (Map<String, dynamic> message) async 
      print('on resume $message');
    ,
    onLaunch: (Map<String, dynamic> message) async 
      Navigator.pushNamed(context, "/");
      print('on launch $message');
    ,
  );

void main() 
  print("uygulama Acildi");
  debugPaintSizeEnabled = false;
  runApp(MaterialApp(
    localizationsDelegates: [
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
  ],supportedLocales: [
    const Locale('tr', 'TR'),
  ],
    theme: ThemeData(fontFamily: 'Oswald'),
    initialRoute: '/',
    routes: <String, WidgetBuilder>
     // '/': (context) => SanalPulHareketleri(),
      '/': (context) => SplashEkrani(),
      '/kayit_ol': (context) => KayitOl(),
    ,
  ));

【问题讨论】:

【参考方案1】:

onMessage 在您收到通知并且前台应用程序正在运行时触发。

请查看 onResumeonLaunch 回调。 更多信息您可以找到on the library page

【讨论】:

以上是关于接收方 FCM 通知点击事件的主要内容,如果未能解决你的问题,请参考以下文章

信号量与消息队列的区别

android 对话框Dialog拦截activity事件通知

android 对话框Dialog拦截activity事件通知

android 对话框Dialog拦截activity事件通知

android 对话框Dialog拦截activity事件通知

android 对话框Dialog拦截activity事件通知