From 402dc952fdea63f959ba592ae1f64f5bade631d1 Mon Sep 17 00:00:00 2001 From: imndx Date: Wed, 24 Apr 2024 15:21:47 +0800 Subject: [PATCH] =?UTF-8?q?=E9=B8=BF=E8=92=99=E6=8E=A8=E9=80=81=E8=81=8A?= =?UTF-8?q?=E5=A4=A9=E6=B6=88=E6=81=AF=E6=97=B6=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=89=93=E5=BC=80=E5=85=B7=E4=BD=93=E7=9A=84=E4=BC=9A=E8=AF=9D?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../push/hm/HMPushServiceImpl.java | 7 ++--- .../push/hm/payload/AlertPayload.java | 27 ++++++++++++++++--- .../push/hm/payload/VoipPayload.java | 9 +++---- .../push/hm/payload/internal/ClickAction.java | 4 ++- 4 files changed, 32 insertions(+), 15 deletions(-) diff --git a/src/main/java/cn/wildfirechat/push/hm/HMPushServiceImpl.java b/src/main/java/cn/wildfirechat/push/hm/HMPushServiceImpl.java index 146a008..f91c148 100644 --- a/src/main/java/cn/wildfirechat/push/hm/HMPushServiceImpl.java +++ b/src/main/java/cn/wildfirechat/push/hm/HMPushServiceImpl.java @@ -88,13 +88,10 @@ public class HMPushServiceImpl implements HMPushService { } if (pushMessage.pushMessageType == PushMessageType.PUSH_MESSAGE_TYPE_VOIP_INVITE || pushMessage.pushMessageType == PushMessageType.PUSH_MESSAGE_TYPE_VOIP_INVITE) { - // TODO - String data = "TODO"; - VoipPayload voipPayload = VoipPayload.buildAlertPayload(pushMessage.getDeviceToken(), data); + VoipPayload voipPayload = VoipPayload.buildAlertPayload(pushMessage); httpPost(this.pushUrl, jwt, 10, voipPayload.toString(), 10000, 10000); } else { - String[] titleAndContent = Utility.getPushTitleAndContent(pushMessage); - AlertPayload alertPayload = AlertPayload.buildAlertPayload(pushMessage.getDeviceToken(), titleAndContent[0], titleAndContent[1]); + AlertPayload alertPayload = AlertPayload.buildAlertPayload(pushMessage); String response = httpPost(this.pushUrl, jwt, 0, alertPayload.toString(), 10000, 10000); LOG.info("Push to {} response {}", pushMessage.getDeviceToken(), response); } diff --git a/src/main/java/cn/wildfirechat/push/hm/payload/AlertPayload.java b/src/main/java/cn/wildfirechat/push/hm/payload/AlertPayload.java index c382648..a1dcd08 100644 --- a/src/main/java/cn/wildfirechat/push/hm/payload/AlertPayload.java +++ b/src/main/java/cn/wildfirechat/push/hm/payload/AlertPayload.java @@ -1,11 +1,16 @@ package cn.wildfirechat.push.hm.payload; +import cn.wildfirechat.push.PushMessage; +import cn.wildfirechat.push.PushMessageType; +import cn.wildfirechat.push.Utility; import cn.wildfirechat.push.hm.payload.internal.ClickAction; import cn.wildfirechat.push.hm.payload.internal.Notification; import cn.wildfirechat.push.hm.payload.internal.Payload; import cn.wildfirechat.push.hm.payload.internal.Target; import com.google.gson.Gson; +import org.json.simple.JSONObject; +import java.text.MessageFormat; import java.util.ArrayList; @@ -18,17 +23,31 @@ public class AlertPayload { return new Gson().toJson(this); } - public static AlertPayload buildAlertPayload(String token, String title, String body) { + public static AlertPayload buildAlertPayload(PushMessage pushMessage) { Notification notification = new Notification(); - notification.title = title; - notification.body = body; + String[] titleAndBody = Utility.getPushTitleAndContent(pushMessage); + notification.title = titleAndBody[0]; + notification.body = titleAndBody[1]; ClickAction clickAction = new ClickAction(); + + if (pushMessage.pushMessageType == PushMessageType.PUSH_MESSAGE_TYPE_NORMAL) { + JSONObject data = new JSONObject(); + JSONObject conv = new JSONObject(); + conv.put("type", pushMessage.convType); + conv.put("target", pushMessage.target); + conv.put("line", pushMessage.line); + data.put("conversation", conv); + clickAction.data = data; + } else { + // TODO + } + notification.clickAction = clickAction; Target target = new Target(); target.token = new ArrayList<>(); - target.token.add(token); + target.token.add(pushMessage.deviceToken); AlertPayload alertPayload = new AlertPayload(); alertPayload.payload = new Payload(); diff --git a/src/main/java/cn/wildfirechat/push/hm/payload/VoipPayload.java b/src/main/java/cn/wildfirechat/push/hm/payload/VoipPayload.java index 0a894d2..34db9c2 100644 --- a/src/main/java/cn/wildfirechat/push/hm/payload/VoipPayload.java +++ b/src/main/java/cn/wildfirechat/push/hm/payload/VoipPayload.java @@ -1,7 +1,6 @@ package cn.wildfirechat.push.hm.payload; -import cn.wildfirechat.push.hm.payload.internal.ClickAction; -import cn.wildfirechat.push.hm.payload.internal.Notification; +import cn.wildfirechat.push.PushMessage; import cn.wildfirechat.push.hm.payload.internal.Payload; import cn.wildfirechat.push.hm.payload.internal.Target; import com.google.gson.Gson; @@ -18,14 +17,14 @@ public class VoipPayload { return new Gson().toJson(this); } - public static VoipPayload buildAlertPayload(String token, String extraData) { + public static VoipPayload buildAlertPayload(PushMessage pushMessage) { Target target = new Target(); target.token = new ArrayList<>(); - target.token.add(token); + target.token.add(pushMessage.deviceToken); VoipPayload voipPayload = new VoipPayload(); voipPayload.payload = new Payload(); - voipPayload.payload.extraData = extraData; + voipPayload.payload.extraData = "TODO"; voipPayload.target = target; return voipPayload; diff --git a/src/main/java/cn/wildfirechat/push/hm/payload/internal/ClickAction.java b/src/main/java/cn/wildfirechat/push/hm/payload/internal/ClickAction.java index 87666ed..2b3010f 100644 --- a/src/main/java/cn/wildfirechat/push/hm/payload/internal/ClickAction.java +++ b/src/main/java/cn/wildfirechat/push/hm/payload/internal/ClickAction.java @@ -1,5 +1,7 @@ package cn.wildfirechat.push.hm.payload.internal; +import org.json.simple.JSONObject; + public class ClickAction { /** * 0:打开应用首页 @@ -10,5 +12,5 @@ public class ClickAction { public String action; public String uri; - public String data; + public JSONObject data; }