Firebase onMessageReceived() returns 没有 getNotification
Firebase onMessageReceived() returns no getNotification
调用 remoteMessage.getNotification()
returns null
和
当调用 remoteMessage.getData()
时,我得到一个奇怪的 object 返回,它有一个初始的 属性 _wp={
如下所列。我每次都需要提取警报 属性,但我不确定如何提取。
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
RemoteMessage.Notification notification = remoteMessage.getNotification();
Map<String, String> data = remoteMessage.getData();
Log.d("DATA", remoteMessage.getData().toString());
sendNotification(data);
}
远程数据日志returns如下。所以我似乎无法获得构建通知所需的标题和文本。
{_wp={"c":"01euntvtna3epk83","alert":{"text":"Body text","title":"test"},"receipt":false,"type":"simple","targetUrl":"wonderpush:\/\/notificationOpen\/default","n":"01eunu08bjla8303","reporting":{"campaignId":"01euntvtna3epk83","notificationId":"01eunu08bjla8303"},"receiptUsingMeasurements":true}, alert=Body text}
我基本上想在使用 NotificationCompat.Builder
时使用它们
.setContentTitle(title)
.setContentText(text)
任何帮助将不胜感激。
正常remoteMessage.getNotification()
returns null
因为WonderPush只使用FCM通知里面的数据,没有Firebase自己的格式。
remoteMessage.getData()
returns 你的地图只能存储字符串值。这对应于顶级 JSON 负载。该地图的字段是顶级 JSON 对象字段,其值均已字符串化。
所以你必须使用 new JSONObject(remoteMessage.getData().get("_wp"))
来解析 _wp
键。
您基本上会阅读这个已解析的 _wp
JSON 对象的 title
和 text
字段,以提供 [=20] 的 .setContentTitle()
和 .setContentText()
=].
但您应该注意,WonderPush Android SDK 正是为此目的而存在的:
- 下面是解析通知的
_wp.alert
字段的代码:https://github.com/wonderpush/wonderpush-android-sdk/blob/v4.0.2/sdk/src/main/java/com/wonderpush/sdk/AlertModel.java
- 这是构建通知的代码:https://github.com/wonderpush/wonderpush-android-sdk/blob/v4.0.2/sdk/src/main/java/com/wonderpush/sdk/NotificationManager.java#L448-L775
如果你有一个补充,分叉、破解、提交拉取请求并同时使用你的分叉会更有意义。
最佳,
调用 remoteMessage.getNotification()
returns null
和
当调用 remoteMessage.getData()
时,我得到一个奇怪的 object 返回,它有一个初始的 属性 _wp={
如下所列。我每次都需要提取警报 属性,但我不确定如何提取。
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
RemoteMessage.Notification notification = remoteMessage.getNotification();
Map<String, String> data = remoteMessage.getData();
Log.d("DATA", remoteMessage.getData().toString());
sendNotification(data);
}
远程数据日志returns如下。所以我似乎无法获得构建通知所需的标题和文本。
{_wp={"c":"01euntvtna3epk83","alert":{"text":"Body text","title":"test"},"receipt":false,"type":"simple","targetUrl":"wonderpush:\/\/notificationOpen\/default","n":"01eunu08bjla8303","reporting":{"campaignId":"01euntvtna3epk83","notificationId":"01eunu08bjla8303"},"receiptUsingMeasurements":true}, alert=Body text}
我基本上想在使用 NotificationCompat.Builder
.setContentTitle(title)
.setContentText(text)
任何帮助将不胜感激。
正常remoteMessage.getNotification()
returns null
因为WonderPush只使用FCM通知里面的数据,没有Firebase自己的格式。
remoteMessage.getData()
returns 你的地图只能存储字符串值。这对应于顶级 JSON 负载。该地图的字段是顶级 JSON 对象字段,其值均已字符串化。
所以你必须使用 new JSONObject(remoteMessage.getData().get("_wp"))
来解析 _wp
键。
您基本上会阅读这个已解析的 _wp
JSON 对象的 title
和 text
字段,以提供 [=20] 的 .setContentTitle()
和 .setContentText()
=].
但您应该注意,WonderPush Android SDK 正是为此目的而存在的:
- 下面是解析通知的
_wp.alert
字段的代码:https://github.com/wonderpush/wonderpush-android-sdk/blob/v4.0.2/sdk/src/main/java/com/wonderpush/sdk/AlertModel.java - 这是构建通知的代码:https://github.com/wonderpush/wonderpush-android-sdk/blob/v4.0.2/sdk/src/main/java/com/wonderpush/sdk/NotificationManager.java#L448-L775
如果你有一个补充,分叉、破解、提交拉取请求并同时使用你的分叉会更有意义。
最佳,