Skip to content

Commit 2446a7b

Browse files
author
yutaipu
committed
适配分组推送中新返回的groupMsgId参数
1 parent 82266f7 commit 2446a7b

File tree

6 files changed

+61
-9
lines changed

6 files changed

+61
-9
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@
1818
## 安装
1919

2020
### maven 方式
21-
将下边的依赖条件放到你项目的 maven pom.xml 文件里。v3.3.10 为例,最新版本请看[Release页面](https://github.com/jpush/jpush-api-java-client/releases)
21+
将下边的依赖条件放到你项目的 maven pom.xml 文件里。v3.4.6 为例,最新版本请看[Release页面](https://github.com/jpush/jpush-api-java-client/releases)
2222

2323
```Java
2424
<dependency>
2525
<groupId>cn.jpush.api</groupId>
2626
<artifactId>jpush-client</artifactId>
27-
<version>3.3.10</version>
27+
<version>3.4.6</version>
2828
</dependency>
2929
```
3030
### jar 包方式
@@ -45,7 +45,7 @@
4545
<dependency>
4646
<groupId>cn.jpush.api</groupId>
4747
<artifactId>jiguang-common</artifactId>
48-
<version>1.1.4</version>
48+
<version>1.1.8</version>
4949
</dependency>
5050
<dependency>
5151
<groupId>io.netty</groupId>

example/main/java/cn/jpush/api/examples/PushExample.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import cn.jpush.api.JPushClient;
1111
import cn.jpush.api.push.CIDResult;
1212
import cn.jpush.api.push.GroupPushClient;
13+
import cn.jpush.api.push.GroupPushResult;
1314
import cn.jpush.api.push.PushResult;
1415
import cn.jpush.api.push.model.*;
1516
import cn.jpush.api.push.model.audience.Audience;
@@ -227,7 +228,8 @@ public void testSendGroupPush() {
227228
GroupPushClient groupPushClient = new GroupPushClient(GROUP_MASTER_SECRET, GROUP_PUSH_KEY);
228229
final PushPayload payload = buildPushObject_android_and_ios();
229230
try {
230-
Map<String, PushResult> result = groupPushClient.sendGroupPush(payload);
231+
GroupPushResult groupPushResult = groupPushClient.sendGroupPush(payload);
232+
Map<String, PushResult> result = groupPushResult.getAppResultMap();
231233
for (Map.Entry<String, PushResult> entry : result.entrySet()) {
232234
PushResult pushResult = entry.getValue();
233235
PushResult.Error error = pushResult.error;

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<groupId>cn.jpush.api</groupId>
55
<artifactId>jpush-client</artifactId>
6-
<version>3.4.6-SNAPSHOT</version>
6+
<version>3.4.7-SNAPSHOT</version>
77
<packaging>jar</packaging>
88
<url>https://github.com/jpush/jpush-api-java-client</url>
99
<name>JPush API Java Client</name>

src/main/java/cn/jpush/api/push/GroupPushClient.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
import cn.jpush.api.push.model.EncryptPushPayload;
1616
import cn.jpush.api.push.model.PushPayload;
1717
import com.google.gson.Gson;
18+
import com.google.gson.JsonElement;
19+
import com.google.gson.JsonObject;
20+
import com.google.gson.JsonParser;
1821
import com.google.gson.reflect.TypeToken;
1922

2023
import java.util.Map;
@@ -29,6 +32,8 @@ public class GroupPushClient {
2932
private String _groupPushPath;
3033
private String _encryptType;
3134
private Gson _gson = new Gson();
35+
private JsonParser _jsonParser = new JsonParser();
36+
3237

3338
public GroupPushClient(String groupMasterSecret, String groupKey) {
3439
this(groupMasterSecret, groupKey, null, ClientConfig.getInstance());
@@ -43,11 +48,17 @@ public GroupPushClient(String groupMasterSecret, String groupKey, HttpProxy prox
4348
this._httpClient = new NativeHttpClient(authCode, proxy, conf);
4449
}
4550

46-
public Map<String, PushResult> sendGroupPush(PushPayload pushPayload) throws APIConnectionException, APIRequestException {
51+
public GroupPushResult sendGroupPush(PushPayload pushPayload) throws APIConnectionException, APIRequestException {
4752
Preconditions.checkArgument(! (null == pushPayload), "pushPayload should not be null");
4853
ResponseWrapper response = _httpClient.sendPost(_baseUrl + _groupPushPath, getEncryptData(pushPayload));
49-
return _gson.fromJson(response.responseContent,
50-
new TypeToken<Map<String, PushResult>>(){}.getType());
54+
// 2020-8-6 兼容分组推送新返回的group_msgid结构
55+
JsonObject responseJson = _jsonParser.parse(response.responseContent).getAsJsonObject();
56+
String groupMsgIdKey = "group_msgid";
57+
JsonElement _groupMsgId = responseJson.get(groupMsgIdKey);
58+
String groupMsgId = null != _groupMsgId ? _groupMsgId.getAsString() : "";
59+
responseJson.remove(groupMsgIdKey);
60+
Map<String, PushResult> result = _gson.fromJson(responseJson, new TypeToken<Map<String, PushResult>>(){}.getType());
61+
return new GroupPushResult(groupMsgId, result);
5162
}
5263

5364
/**
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package cn.jpush.api.push;
2+
3+
import java.util.Map;
4+
5+
/**
6+
* @author tp
7+
* @since 2020/8/6
8+
*/
9+
public class GroupPushResult {
10+
11+
private Map<String, PushResult> appResultMap;
12+
13+
private String groupMsgId;
14+
15+
public GroupPushResult() {
16+
}
17+
18+
public GroupPushResult(String groupMsgId, Map<String, PushResult> appResultMap) {
19+
this.groupMsgId = groupMsgId;
20+
this.appResultMap = appResultMap;
21+
}
22+
23+
public Map<String, PushResult> getAppResultMap() {
24+
return appResultMap;
25+
}
26+
27+
public void setAppResultMap(Map<String, PushResult> appResultMap) {
28+
this.appResultMap = appResultMap;
29+
}
30+
31+
public String getGroupMsgId() {
32+
return groupMsgId;
33+
}
34+
35+
public void setGroupMsgId(String groupMsgId) {
36+
this.groupMsgId = groupMsgId;
37+
}
38+
}

src/test/java/cn/jpush/api/push/GroupPushClientTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ public void testSendGroupPush() {
2424
GroupPushClient groupPushClient = new GroupPushClient(GROUP_MASTER_SECRET, GROUP_PUSH_KEY);
2525
final PushPayload payload = buildPushObject_android();
2626
try {
27-
Map<String, PushResult> result = groupPushClient.sendGroupPush(payload);
27+
GroupPushResult groupPushresult = groupPushClient.sendGroupPush(payload);
28+
Map<String, PushResult> result = groupPushresult.getAppResultMap();
2829
for (Map.Entry<String, PushResult> entry : result.entrySet()) {
2930
PushResult pushResult = entry.getValue();
3031
PushResult.Error error = pushResult.error;

0 commit comments

Comments
 (0)