yeqd пре 4 година
родитељ
комит
f73694e1c7
3 измењених фајлова са 186 додато и 0 уклоњено
  1. +51
    -0
      user-client/src/main/java/com/hp/user/client/entity/Msg.java
  2. +100
    -0
      user-service/src/main/java/com/hp/user/service/utils/PushMsgUtil.java
  3. +35
    -0
      user-service/src/test/java/com/hp/user/service/PushMsgTest.java

+ 51
- 0
user-client/src/main/java/com/hp/user/client/entity/Msg.java Прегледај датотеку

@@ -0,0 +1,51 @@
package com.hp.user.client.entity;

import java.util.List;

public class Msg {
private String title; // 通知栏标题
private String text; // 通知栏内容
private String logo; //通知栏图标
private String content;// 透传的内容
private List<String> clientIds; // 通知的CID列表

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getText() {
return text;
}

public void setText(String text) {
this.text = text;
}

public String getLogo() {
return logo;
}

public void setLogo(String logo) {
this.logo = logo;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}

public List<String> getClientIds() {
return clientIds;
}

public void setClientIds(List<String> clientIDs) {
this.clientIds = clientIDs;
}
}

+ 100
- 0
user-service/src/main/java/com/hp/user/service/utils/PushMsgUtil.java Прегледај датотеку

@@ -0,0 +1,100 @@
package com.hp.user.service.utils;

import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.ListMessage;
import com.gexin.rp.sdk.base.impl.Target;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.NotificationTemplate;
import com.gexin.rp.sdk.template.style.Style0;
import com.hp.user.client.entity.DataResult;
import com.hp.user.client.entity.Msg;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class PushMsgUtil {
private static String appId = "lKmadzfZhH6ba89AyPR0q1";
private static String appKey = "464hjTzesi5wonBzifDEsA";
private static String masterSecret = "FASmZ3GxYj5jIlif9XdWT";
// 如果需要使用HTTPS,直接修改url即可
//private static String url = "https://api.getui.com/apiex.htm";
static String host = "http://api.getui.com/apiex.htm";

public DataResult<Map> pushMassage(Msg msg) {
DataResult<Map> result = new DataResult<>();
try{
// 配置返回每个用户返回用户状态,可选
System.setProperty("gexin_pushList_needDetails", "true");
// 配置返回每个别名及其对应cid的用户状态,可选
// System.setProperty("gexin_pushList_needAliasDetails", "true");
IGtPush push = new IGtPush(host, appKey, masterSecret);
// 通知透传模板
NotificationTemplate template = getNotificationTemplate(msg);
ListMessage message = new ListMessage();
// 设置消息离线,并设置离线时间
message.setOffline(true);
// 离线有效时间,单位为毫秒
message.setOfflineExpireTime(24 * 3600 * 1000);
message.setData(template);
// 可选,1为wifi,0为不限制网络环境。根据手机处于的网络情况,决定是否下发
message.setPushNetWorkType(0);
// 厂商通道下发策略
message.setStrategyJson("{\"default\":4,\"ios\":4,\"st\":4}");
// 配置推送目标
List<Target> targets = new ArrayList<>();
Target target = null;
if(msg.getClientIds()==null) {
result.setCode("-1");
result.setMessage("clientIds不能为空");
return result;
}
for (String temp : msg.getClientIds()) {
target = new Target();
target.setAppId(appId);
target.setClientId(temp);
targets.add(target);
}
// taskId用于在推送时去查找对应的message
String taskId = push.getContentId(message);
IPushResult ret = push.pushMessageToList(taskId, targets);
result.setCode("0");
result.setData(ret.getResponse());
return result;
}catch (Exception e){
result.setCode("-1");
result.setMessage("服务器异常");
return result;
}
}

private static NotificationTemplate getNotificationTemplate(Msg msg) {
NotificationTemplate template = new NotificationTemplate();
// 设置APPID与APPKEY
template.setAppId(appId);
template.setAppkey(appKey);

Style0 style = new Style0();
// 设置通知栏标题与内容
style.setTitle(msg.getTitle());
style.setText(msg.getText());
// 配置通知栏图标
style.setLogo(msg.getLogo());
// 配置通知栏网络图标
style.setLogoUrl("");
// 设置通知是否响铃,震动,或者可清除
style.setRing(true);
style.setVibrate(true);
style.setClearable(true);
// style.setChannel("通知渠道id");
// style.setChannelName("通知渠道名称");
// style.setChannelLevel(3); //设置通知渠道重要性
template.setStyle(style);

template.setTransmissionType(2); // 透传消息接受方式设置,1:立即启动APP,2:客户端收到消息后需要自行处理
template.setTransmissionContent(msg.getContent());

//template.setAPNInfo(getAPNPayload()); //详见【推送模板说明】iOS通知样式设置
return template;
}
}

+ 35
- 0
user-service/src/test/java/com/hp/user/service/PushMsgTest.java Прегледај датотеку

@@ -0,0 +1,35 @@
package com.hp.user.service;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.ListMessage;
import com.gexin.rp.sdk.base.impl.Message;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.base.impl.Target;
import com.gexin.rp.sdk.template.NotificationTemplate;
import com.gexin.rp.sdk.template.style.Style0;
import com.hp.user.client.entity.DataResult;
import com.hp.user.client.entity.Msg;
import com.hp.user.service.utils.PushMsgUtil;

import java.util.ArrayList;
import java.util.List;

public class PushMsgTest {
public static void main(String args[]) throws Exception{
Msg m = new Msg();
PushMsgUtil pushMsgUtil = new PushMsgUtil();
m.setText("通知栏内容");
m.setTitle("通知栏标题");
m.setLogo("icon.png");
m.setContent("透传内容balabala");
List<String> clientIds = new ArrayList<>();
clientIds.add("171d133059df0f1fc900844b7a1db2cf");
m.setClientIds(clientIds);
DataResult test =pushMsgUtil.pushMassage(m);
if(test.getCode().equals("-1")){
System.out.println(test.getMessage());
}else{
System.out.println(test.getData().toString());
}

}
}

Loading…
Откажи
Сачувај