From 2f31ff1fe0e2647c23844c76f0aedb8b0cc7513a Mon Sep 17 00:00:00 2001 From: heavyrian2012 Date: Sun, 8 Oct 2023 10:47:22 +0800 Subject: [PATCH] =?UTF-8?q?ios=E5=B9=B3=E5=8F=B0=E4=B9=9F=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E4=BD=BF=E7=94=A8=E4=B8=AA=E6=8E=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../push/android/AndroidPushServiceImpl.java | 2 +- .../wildfirechat/push/android/getui/GetuiPush.java | 2 +- .../wildfirechat/push/ios/IOSPushServiceImpl.java | 14 +++++++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/cn/wildfirechat/push/android/AndroidPushServiceImpl.java b/src/main/java/cn/wildfirechat/push/android/AndroidPushServiceImpl.java index 7968e2e..e885935 100644 --- a/src/main/java/cn/wildfirechat/push/android/AndroidPushServiceImpl.java +++ b/src/main/java/cn/wildfirechat/push/android/AndroidPushServiceImpl.java @@ -89,7 +89,7 @@ public class AndroidPushServiceImpl implements AndroidPushService { fcmPush.push(pushMessage); break; case AndroidPushType.ANDROID_PUSH_TYPE_GETUI: - getuiPush.push(pushMessage); + getuiPush.push(pushMessage, true); break; default: LOG.info("unknown push type"); diff --git a/src/main/java/cn/wildfirechat/push/android/getui/GetuiPush.java b/src/main/java/cn/wildfirechat/push/android/getui/GetuiPush.java index d887cb9..21fd8e7 100644 --- a/src/main/java/cn/wildfirechat/push/android/getui/GetuiPush.java +++ b/src/main/java/cn/wildfirechat/push/android/getui/GetuiPush.java @@ -61,7 +61,7 @@ public class GetuiPush { } - public void push(PushMessage pushMessage) { + public void push(PushMessage pushMessage, boolean isAndroid) { if (pushMessage.pushMessageType == PushMessageType.PUSH_MESSAGE_TYPE_RECALLED || pushMessage.pushMessageType == PushMessageType.PUSH_MESSAGE_TYPE_DELETED) { //Todo not implement //撤回或者删除消息,需要更新远程通知,暂未实现 diff --git a/src/main/java/cn/wildfirechat/push/ios/IOSPushServiceImpl.java b/src/main/java/cn/wildfirechat/push/ios/IOSPushServiceImpl.java index 934f368..2ae8a6c 100644 --- a/src/main/java/cn/wildfirechat/push/ios/IOSPushServiceImpl.java +++ b/src/main/java/cn/wildfirechat/push/ios/IOSPushServiceImpl.java @@ -3,6 +3,8 @@ package cn.wildfirechat.push.ios; import cn.wildfirechat.push.PushMessage; import cn.wildfirechat.push.PushMessageType; import cn.wildfirechat.push.Utility; +import cn.wildfirechat.push.android.AndroidPushType; +import cn.wildfirechat.push.android.getui.GetuiPush; import com.google.gson.Gson; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,6 +22,9 @@ public class IOSPushServiceImpl implements IOSPushService { @Autowired public ApnsServer apnsServer; + @Autowired + private GetuiPush getuiPush; + private ExecutorService executorService = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), Runtime.getRuntime().availableProcessors() * 100, 60L, TimeUnit.SECONDS, new SynchronousQueue()); @@ -38,7 +43,14 @@ public class IOSPushServiceImpl implements IOSPushService { LOG.error("等待太久,消息抛弃"); return; } - apnsServer.pushMessage(pushMessage); + if(pushMessage.pushType < 3) { + apnsServer.pushMessage(pushMessage); + } else if(pushMessage.pushType == AndroidPushType.ANDROID_PUSH_TYPE_GETUI) { + getuiPush.push(pushMessage, false); + } else { + LOG.error("Unknown ios push type: {}", pushMessage.pushType); + } + }); return "OK"; }