我如何使用react-native-firebase库作为侦听器从来自Salesforce MarketingCloud



我有一个使用react-native的0.64.2版本的应用程序。为了接收推送通知,我使用来自react-native-firebase库的Firebase Messaging。作为推送通知的发送者,我使用Salesforce Marketing Cloud,在我的测试中,推送正常工作,通知在用户的设备上触发,但是当应用程序在后台使用setBackgroundMessageHandler方法时,我无法从这些通知中获取数据,在前台的应用程序中,onMessage方法工作良好,我可以获得通知数据,但在后台我不能。另一点是,当通知从Firebase发送时,一切都如预期的那样工作,我可以在前台和后台获得通知数据。

我在一些论坛上看到,我需要设置Android的推送优先级高,并使用一个content_available属性为iOS的推送在后台工作,但我怎么能改变周围Salesforce的推送体添加这些字段的优先级和content_available?

依赖性:

"@react-native-firebase/analytics": "^12.2.0",
"@react-native-firebase/app": "^12.2.0",
"@react-native-firebase/crashlytics": "^12.2.0",
"@react-native-firebase/messaging": "^12.2.0",
"react-native-marketingcloudsdk": "^7.4.0",

来自Salesforce的推送,我无法获得数据:

{
"data":{
"_h":"pS/soSdadDzWB+Qa+RQaaAAA",
"_m":"MzE5adNjoxMTdsadQ6MA",
"_mt":"1",
"_od":"https://www.teste.com.br/",
"_r":"a233246d-3c312e-439d-12esafase12",
"_sid":"SFMC",
"alert":"Finalizamos nossos testes e agora temos push via iOS. #pracima 🚀",
"sound":"default",
"title":"S-U-R-P-R-E-S-A! 😬"
},
"from":"9692123278371572",
"messageId":"0:1627334613526320%5ccc36fef93e3xsdsf",
"sentTime":1627334613505,
"ttl":43543534
}

来自Firebase的push,我可以得到通知数据:

{
"collapseKey": "br.com.teste",
"data": {},
"from": "434233544643",
"messageId": "0:1627504479073910%5ccc36bdf3246fe",
"notification": {
"android": {},
"body": "teste notificacao",
"title": "teste"
},
"sentTime": 1627504479066,
"ttl": 2002323
}

您将无法使用firebase库侦听Marketing Cloud通知,因为IOS Salesforce不使用firebase,而是使用apn,我建议您使用react-native-push-notification

最新更新