У меня развернуто веб-приложение в защищенной среде. Я использую протокол сервера FCM HTTP для запроса сервера приложений FCM на отправку push-уведомлений в список подписчиков. Я хочу показать значок в уведомлении, мой файл значков присутствует на сервере. Как мне это сделать. Пожалуйста, помогите.
Ниже приведен фрагмент кода в java для отправки уведомлений.
private MsgDTO pushNotificationService(String[] tokenArray,
String serverKey, SendNotificationReqType sendNotificationReqType)
throws AppException {
MsgDTO msgDTO = new MsgDTO();
{
HttpURLConnection httpcon = (HttpURLConnection) ((new URL(
"https://fcm.googleapis.com/fcm/send").openConnection()));
httpcon.setDoOutput(true);
httpcon.setRequestProperty("Content-Type", "application/json");
httpcon.setRequestProperty(
"Authorization",
"key="+serverKey);
httpcon.setRequestMethod("POST");
httpcon.connect();
LOG.debug("Connected!");
JSONObject json = new JSONObject();
json.put("registration_ids", tokenArray);
JSONObject info = new JSONObject();
info.put("title", sendNotificationReqType.getTitle()); // Notification title
info.put("body", sendNotificationReqType.getMessage()); // Notification body
info.put("icon","*icon url*"); //
json.put("notification", info);
LOG.debug("pushNotification : "+json.toString());
OutputStreamWriter wr = new OutputStreamWriter(
httpcon.getOutputStream());
wr.write(json.toString());
wr.flush();
}
Ниже приведен код JS на стороне клиента.
messaging.onMessage(function(payload) {
// Customize notification here
var notificationTitle = payload.notification.title;
var notificationOptions = {
body: payload.notification.body,
icon: '*icon url*'
};
return self.registration.showNotification(notificationTitle,
notificationOptions);
});