Urbanairship 自定义推送通知消息内容
Urbanairship customise push notification message content
我正在使用城市飞艇向我的 android 应用程序发送推送通知。我从后端服务器发送 json 内容作为推送内容
推送正常,我可以获取到推送内容。推送消息也显示在设备通知栏中。
但问题是推送通知显示 json 内容。我需要对其进行自定义并显示一条人类可读的消息。
这是我的 IntentReceiver 中的 onPushReceived 方法 class ..
@Override
protected void onPushReceived(Context context, PushMessage message, int notificationId) {
Log.i(TAG, "Received push notification. Alert: " + message.getAlert() + ". Notification ID: " + notificationId);
String data = message.getAlert();
try {
JSONObject dataObj = new JSONObject( data );
Logger.info("Data obj " + dataObj.toString());
JsonDecoders.decodePushMessage(dataObj); // method to decode the json content
} catch (JSONException e) {
e.printStackTrace();
}
// try to build a new notification message.
Intent intent = new Intent(context, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder b = new NotificationCompat.Builder(context);
b.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setTicker("Ticker")
.setContentTitle("Title")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setDefaults(Notification.DEFAULT_LIGHTS| Notification.DEFAULT_SOUND)
.setContentIntent(contentIntent)
.setContentInfo("some info");
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, b.build());
}
我可以解码推送内容。
我尝试通过 NotificationManager 添加通知,但是通知栏中显示了两个通知。我需要覆盖城市飞艇推送的内容。有什么方法或方法可以做到这一点。我浏览了文档并找不到任何东西。
希望有人能帮帮我..
在此先致谢。
Urban Airship 支持自定义通知,但您需要让 Urban Airship post 通知。您需要提供 custom notification factory 而不是在接收器中构建 posting 通知。但是,您可以通过不发送 JSON 内容作为消息警报来避免这种情况,而是将额外数据作为推送负载中的额外内容发送。
我正在使用城市飞艇向我的 android 应用程序发送推送通知。我从后端服务器发送 json 内容作为推送内容
推送正常,我可以获取到推送内容。推送消息也显示在设备通知栏中。
但问题是推送通知显示 json 内容。我需要对其进行自定义并显示一条人类可读的消息。
这是我的 IntentReceiver 中的 onPushReceived 方法 class ..
@Override
protected void onPushReceived(Context context, PushMessage message, int notificationId) {
Log.i(TAG, "Received push notification. Alert: " + message.getAlert() + ". Notification ID: " + notificationId);
String data = message.getAlert();
try {
JSONObject dataObj = new JSONObject( data );
Logger.info("Data obj " + dataObj.toString());
JsonDecoders.decodePushMessage(dataObj); // method to decode the json content
} catch (JSONException e) {
e.printStackTrace();
}
// try to build a new notification message.
Intent intent = new Intent(context, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder b = new NotificationCompat.Builder(context);
b.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setTicker("Ticker")
.setContentTitle("Title")
.setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
.setDefaults(Notification.DEFAULT_LIGHTS| Notification.DEFAULT_SOUND)
.setContentIntent(contentIntent)
.setContentInfo("some info");
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, b.build());
}
我可以解码推送内容。
我尝试通过 NotificationManager 添加通知,但是通知栏中显示了两个通知。我需要覆盖城市飞艇推送的内容。有什么方法或方法可以做到这一点。我浏览了文档并找不到任何东西。
希望有人能帮帮我..
在此先致谢。
Urban Airship 支持自定义通知,但您需要让 Urban Airship post 通知。您需要提供 custom notification factory 而不是在接收器中构建 posting 通知。但是,您可以通过不发送 JSON 内容作为消息警报来避免这种情况,而是将额外数据作为推送负载中的额外内容发送。