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 内容作为消息警报来避免这种情况,而是将额外数据作为推送负载中的额外内容发送。