|
@@ -1,6 +1,7 @@
|
|
|
package com.ruoyi.app.util;
|
|
|
|
|
|
import com.gexin.rp.sdk.base.IPushResult;
|
|
|
+import com.gexin.rp.sdk.base.impl.ListMessage;
|
|
|
import com.gexin.rp.sdk.base.impl.SingleMessage;
|
|
|
import com.gexin.rp.sdk.base.impl.Target;
|
|
|
import com.gexin.rp.sdk.exceptions.RequestException;
|
|
@@ -8,6 +9,9 @@ import com.gexin.rp.sdk.http.IGtPush;
|
|
|
import com.gexin.rp.sdk.template.NotificationTemplate;
|
|
|
import com.gexin.rp.sdk.template.style.Style0;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
* 消息推送
|
|
|
*/
|
|
@@ -21,14 +25,14 @@ public class PushUtil {
|
|
|
/**
|
|
|
* @param title 消息标题 例如家族消息
|
|
|
* @param text 消息内容 例如余震申请加入陕西凤翔余姓家族
|
|
|
- * @param client_id 设备标识
|
|
|
+ * @param client_ids 设备标识
|
|
|
* @return true|false
|
|
|
*/
|
|
|
- public static boolean sendMessage(String title, String text, String client_id) {
|
|
|
+ public static boolean sendMessage(String title, String text, List<String> client_ids) {
|
|
|
// 设置后,根据别名推送,会返回每个cid的推送结果
|
|
|
IGtPush push = new IGtPush(host, appKey, masterSecret);
|
|
|
NotificationTemplate template = getNotificationTemplate(title, text);
|
|
|
- SingleMessage message = new SingleMessage();
|
|
|
+ ListMessage message = new ListMessage();
|
|
|
message.setOffline(true);
|
|
|
// 离线有效时间,单位为毫秒
|
|
|
message.setOfflineExpireTime(24 * 3600 * 1000);
|
|
@@ -37,15 +41,19 @@ public class PushUtil {
|
|
|
message.setPushNetWorkType(0);
|
|
|
// 厂商通道下发策略
|
|
|
message.setStrategyJson("{\"default\":4,\"ios\":4,\"st\":4}");
|
|
|
- Target target = new Target();
|
|
|
- target.setAppId(appId);
|
|
|
- target.setClientId(client_id);
|
|
|
- IPushResult ret;
|
|
|
+ List<Target> list = new ArrayList<>();
|
|
|
+ for (String client_id : client_ids) {
|
|
|
+ Target target = new Target();
|
|
|
+ target.setAppId(appId);
|
|
|
+ target.setClientId(client_id);
|
|
|
+ list.add(target);
|
|
|
+ }
|
|
|
+ String contentId = push.getContentId(message);
|
|
|
+ IPushResult ret = null;
|
|
|
try {
|
|
|
- ret = push.pushMessageToSingle(message, target);
|
|
|
+ ret = push.pushMessageToList(contentId, list);
|
|
|
} catch (RequestException e) {
|
|
|
e.printStackTrace();
|
|
|
- ret = push.pushMessageToSingle(message, target, e.getRequestId());
|
|
|
}
|
|
|
if (ret.getResponse().get("result").toString().equals("ok")) {
|
|
|
return true;
|
|
@@ -56,7 +64,10 @@ public class PushUtil {
|
|
|
}
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
- boolean s = sendMessage("家族通知", "余震申请加入", "4c5889ce0d7594141127eacb697b8007");
|
|
|
+ List<String>list=new ArrayList<>();
|
|
|
+ list.add("4c5889ce0d7594141127eacb697b8007");
|
|
|
+ list.add("42a9c3372a60f1ccffe639520b421b07");
|
|
|
+ boolean s = sendMessage("家族通知", "余震申请加入", list);
|
|
|
System.out.println("ssss:" + s);
|
|
|
}
|
|
|
|