IONIC android FCM 通知

Posted

技术标签:

【中文标题】IONIC android FCM 通知【英文标题】:IONIC android FCM notification 【发布时间】:2017-07-01 01:41:50 【问题描述】:

在 Firebase 通知中,我在应用程序处于后台时收到通知,但是当我打开应用程序而不点击通知时,数据不会反映在 IONIC android 应用程序中。

当应用程序处于前台时,数据会自动反映。

我也使用了 cordova-plugin-messaging 插件,但没有用。

我用过

FCMPlugin.onNotification( 函数(数据)

          if(data.wasTapped)
            console.log(data);

          else
            console.log(data);

          

        ,
        function(msg)
          console.log('onNotification callback successfully registered: ' + msg);
        ,
        function(err)
          console.log('Error registering onNotification callback: ' + err);
        
      );

也用过:

window.cordova.plugins.firebase.messaging.onMessage(function(data)

      console.log(data);

);

但它适用于应用程序处于前台以及我们单击通知时..

我想在应用程序处于后台时检索数据,并且在应用程序打开时不点击通知。

感谢回答

【问题讨论】:

嗨。发布相关代码sn-ps。 FCMPlugin.onNotification(function(data) if(data.wasTapped) console.log(data); else console.log(data); , function(msg) console .log('onNotification回调注册成功: ' + msg); , function(err) console.log('注册onNotification回调出错: ' + err); ); 如果用户在您的应用被杀死/未运行时收到通知,如果应用在没有点击通知的情况下打开,则数据不会发送到应用。这是正常行为。 【参考方案1】:

sendPushPayload( data );

Intent NotificationIntent = new Intent(this, FCMPluginActivity.class)
 .addCategory(Intent.CATEGORY_LAUNCHER)

  .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  for (String key : data.keySet()) 
  NotificationIntent.putExtra(key, data.get(key).toString());
  
  startActivity(NotificationIntent);

将上面的代码放在你的android原生文件(MyFirebaseMessagingService.java )和cordova plugin android(src ->android-> MyFirebaseMessagingService.java)文件中,如果进行上述更改意味着应用程序在后台你推送通知意味着应用程序将自动打开。

【讨论】:

以上是关于IONIC android FCM 通知的主要内容,如果未能解决你的问题,请参考以下文章

ionic 3:在 android fcm.onNotification() 中,当应用程序处于后台时,点击通知时不会调用

离子/电容器 - PushNotiifcations - Android - “通知” + “数据” 消息

IONIC FCM推送通知ios,无法接收

基于Ionic Cordova的应用程序的GCM到FCM迁移步骤

带有 FCM 的 Ionic 2 推送通知

在离子完整示例中使用 FCM for android 推送通知