如何在离子1应用程序上使用cordova-plugin-fcm获取通知标题和正文

时间:2017-09-08 10:45:11

标签: android firebase ionic-framework firebase-cloud-messaging cordova-plugin-fcm

我正在使用Firebase Cloud Messaging HTTP Protocol使用邮递员将推送通知发送到我的应用程序进行测试。

我使用以下代码发送推送。

{
  "notification":{
    "title":"Title",
    "body":"this is a notification to a specific topic",
    "sound":"default",
    "click_action":"FCM_PLUGIN_ACTIVITY",  
  },
  "data":{
    "action":"ping"
  },
  "to":"/topics/Topic_1",
  "priority":"high"
}

我正在使用此代码处理我的应用上的通知:

FCMPlugin.onNotification(function(data){
    console.log(data);
    if(data.wasTapped){
      //Notification was received on device tray and tapped by the user. 
      alert('notification tapped'+ JSON.stringify(data) );
    }else{
      //Notification was received in foreground. Maybe the user needs to be notified. 
      alert('application is open'+ JSON.stringify(data) );
    }
});

一切正常,除非我无法获得标题和正文在我的应用程序中使用它们,我得到的是以下内容:

  

对象{wasTapped:false,action:" ping"}

我找不到获取通知标题和正文的方法。

我知道我可以将它们复制到数据部分,但这不是逻辑它是一个肮脏的解决方法

所以任何想法如何获取通知数据? 谢谢。

1 个答案:

答案 0 :(得分:2)

根据显示的行为,我假设客户端平台是Android。如果是这样,那么这是按预期工作的。

在您的消息有效负载中发送notificationdata的组合时,Android系统托盘将是处理notification中的值的托盘。您提到的脏解决方法是迄今为止唯一的解决方法 - 我在one of my answers上实际建议的解决方法。