Skip to content

Commit 9720e51

Browse files
author
Javen
committed
Split to PushExample and ReportsExample;
Add shortcut for AudienceTarget Add more comments
1 parent 1763e36 commit 9720e51

File tree

7 files changed

+140
-50
lines changed

7 files changed

+140
-50
lines changed

src/cn/jpush/api/examples/JPushClientExample.java renamed to src/cn/jpush/api/examples/PushExample.java

Lines changed: 41 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,37 @@
55

66
import cn.jpush.api.JPushClient;
77
import cn.jpush.api.push.PushResult;
8+
import cn.jpush.api.push.model.Message;
89
import cn.jpush.api.push.model.Platform;
910
import cn.jpush.api.push.model.PushPayload;
1011
import cn.jpush.api.push.model.audience.Audience;
12+
import cn.jpush.api.push.model.audience.AudienceTarget;
1113
import cn.jpush.api.push.model.notification.AndroidNotification;
14+
import cn.jpush.api.push.model.notification.IosNotification;
1215
import cn.jpush.api.push.model.notification.Notification;
13-
import cn.jpush.api.report.ReceivedsResult;
1416

15-
public class JPushClientExample {
16-
protected static final Logger LOG = LoggerFactory.getLogger(JPushClientExample.class);
17+
public class PushExample {
18+
protected static final Logger LOG = LoggerFactory.getLogger(PushExample.class);
1719

1820
// demo App defined in resources/jpush-api.conf
1921
private static final String appKey ="dd1066407b044738b6479275";
2022
private static final String masterSecret = "2b38ce69b1de2a7fa95706ea";
2123

2224
public static final String TITLE = "Test from API example";
23-
public static final String CONTENT = "Test from Javen";
25+
public static final String ALERT = "Test from API Example - alert";
26+
public static final String MSG_CONTENT = "Test from API Example - msgContent";
2427
public static final String REGISTRATION_ID = "0900e8d85ef";
2528
public static final String TAG = "tag_api";
2629

2730
public static void main(String[] args) {
2831
testSendPush();
29-
testGetReport();
3032
}
3133

32-
private static void testSendPush() {
34+
35+
public static void testSendPush() {
3336
JPushClient jpushClient = new JPushClient(masterSecret, appKey);
37+
38+
// For push, all you need do is to build PushPayload object.
3439
PushPayload payload = buildPushObject_all_all_alert();
3540
LOG.info("Paylaod JSON - " + payload.toString());
3641

@@ -47,14 +52,14 @@ private static void testSendPush() {
4752
}
4853

4954
public static PushPayload buildPushObject_all_all_alert() {
50-
return PushPayload.alertAll(CONTENT);
55+
return PushPayload.alertAll(ALERT);
5156
}
5257

5358
public static PushPayload buildPushObject_all_alias_alert() {
5459
return PushPayload.newBuilder()
5560
.setPlatform(Platform.all())
5661
.setAudience(Audience.alias("alias1"))
57-
.setNotification(Notification.alert(CONTENT))
62+
.setNotification(Notification.alert(ALERT))
5863
.build();
5964
}
6065

@@ -64,33 +69,40 @@ public static PushPayload buildPushObject_android_tag_alertWithTitle() {
6469
.setAudience(Audience.tag("tag1"))
6570
.setNotification(Notification.newBuilder()
6671
.addPlatformNotification(AndroidNotification.newBuilder()
67-
.setAlert(CONTENT)
72+
.setAlert(ALERT)
6873
.setTitle(TITLE)
6974
.build())
7075
.build())
7176
.build();
7277
}
7378

79+
public static PushPayload buildPushObject_ios_tagAnd_alertWithExtras() {
80+
return PushPayload.newBuilder()
81+
.setPlatform(Platform.ios())
82+
.setAudience(Audience.tag_and("tag1", "tag_all"))
83+
.setNotification(Notification.newBuilder()
84+
.addPlatformNotification(IosNotification.newBuilder()
85+
.setAlert(ALERT)
86+
.addExtra("news_id", 333)
87+
.build())
88+
.build())
89+
.build();
90+
}
91+
92+
public static PushPayload buildPushObject_ios_audienceMore_message() {
93+
return PushPayload.newBuilder()
94+
.setPlatform(Platform.ios())
95+
.setAudience(Audience.newBuilder()
96+
.addAudienceTarget(AudienceTarget.tag("tag1", "tag2"))
97+
.addAudienceTarget(AudienceTarget.alias("alias1", "alias2"))
98+
.build())
99+
.setMessage(Message.newBuilder()
100+
.setMsgContent(MSG_CONTENT)
101+
.addExtra("news_id", 333)
102+
.build())
103+
.build();
104+
}
105+
74106

75-
public static void testGetReport() {
76-
JPushClient jpushClient = new JPushClient(masterSecret, appKey);
77-
ReceivedsResult receivedsResult = jpushClient.getReportReceiveds("1708010723,1774452771");
78-
LOG.debug("responseContent - " + receivedsResult.getOriginalContent());
79-
if (receivedsResult.isResultOK()) {
80-
LOG.info("Receiveds - " + receivedsResult);
81-
} else {
82-
if (receivedsResult.getErrorCode() > 0) {
83-
// 业务异常
84-
LOG.warn("Service error - ErrorCode: "
85-
+ receivedsResult.getErrorCode() + ", ErrorMessage: "
86-
+ receivedsResult.getErrorMessage());
87-
} else {
88-
// 未到达 JPush
89-
LOG.error("Other excepitons - "
90-
+ receivedsResult.getExceptionString());
91-
}
92-
}
93-
}
94-
95107
}
96108

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package cn.jpush.api.examples;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
6+
import cn.jpush.api.JPushClient;
7+
import cn.jpush.api.report.ReceivedsResult;
8+
9+
public class ReportsExample {
10+
protected static final Logger LOG = LoggerFactory.getLogger(ReportsExample.class);
11+
12+
// demo App defined in resources/jpush-api.conf
13+
private static final String appKey ="dd1066407b044738b6479275";
14+
private static final String masterSecret = "2b38ce69b1de2a7fa95706ea";
15+
16+
public static void main(String[] args) {
17+
testGetReport();
18+
}
19+
20+
21+
public static void testGetReport() {
22+
JPushClient jpushClient = new JPushClient(masterSecret, appKey);
23+
ReceivedsResult receivedsResult = jpushClient.getReportReceiveds("1708010723,1774452771");
24+
LOG.debug("responseContent - " + receivedsResult.getOriginalContent());
25+
if (receivedsResult.isResultOK()) {
26+
LOG.info("Receiveds - " + receivedsResult);
27+
} else {
28+
if (receivedsResult.getErrorCode() > 0) {
29+
// 业务异常
30+
LOG.warn("Service error - ErrorCode: "
31+
+ receivedsResult.getErrorCode() + ", ErrorMessage: "
32+
+ receivedsResult.getErrorMessage());
33+
} else {
34+
// 未到达 JPush
35+
LOG.error("Other excepitons - "
36+
+ receivedsResult.getExceptionString());
37+
}
38+
}
39+
}
40+
41+
}
42+

src/cn/jpush/api/push/PushClient.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class PushClient {
3434
private long _timeToLive = 60 * 60 * 24;
3535

3636

37-
private boolean _overallSettingEnabled = false;
37+
private boolean _globalSettingEnabled = false;
3838

3939
// Generated HTTP Basic authorization string.
4040
private final String _authCode;
@@ -53,15 +53,15 @@ public PushClient(String masterSecret, String appKey, boolean apnsProduction, lo
5353
this(masterSecret, appKey);
5454
this._apnsProduction = apnsProduction;
5555
this._timeToLive = timeToLive;
56-
this._overallSettingEnabled = true;
56+
this._globalSettingEnabled = true;
5757
}
5858

5959
public void setBaseUrl(String baseUrl) {
6060
this._baseUrl = baseUrl;
6161
}
6262

6363
public PushResult sendPush(PushPayload pushPayload) {
64-
if (_overallSettingEnabled) {
64+
if (_globalSettingEnabled) {
6565
pushPayload.resetOptionsTimeToLive(_timeToLive);
6666
pushPayload.resetOptionsApnsProduction(_apnsProduction);
6767
}

src/cn/jpush/api/push/model/PushPayload.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@
88
import com.google.gson.JsonElement;
99
import com.google.gson.JsonObject;
1010

11+
/**
12+
* The object you should to build for sending a push.
13+
*
14+
* Basically start with newBuilder() method to build a PushPayload object.
15+
* alertAll() is a shortcut for quickly build payload of alert to all platform and all audience;
16+
* mesageAll() is a shortcut for quickly build payload of message to all platform and all audience.
17+
*
18+
*/
1119
public class PushPayload implements PushModel {
1220
private static final String PLATFORM = "platform";
1321
private static final String AUDIENCE = "audience";
@@ -23,6 +31,7 @@ public class PushPayload implements PushModel {
2331
private final Message message;
2432
private Options options;
2533

34+
2635
private PushPayload(Platform platform, Audience audience,
2736
Notification notification, Message message, Options options) {
2837
this.platform = platform;
@@ -32,17 +41,26 @@ private PushPayload(Platform platform, Audience audience,
3241
this.options = options;
3342
}
3443

44+
/**
45+
* The entrance for building a PushPayload object.
46+
*/
3547
public static Builder newBuilder() {
3648
return new Builder();
3749
}
3850

51+
/**
52+
* The shortcut of building a simple alert notification object to all platforms and all audiences
53+
*/
3954
public static PushPayload alertAll(String alert) {
4055
return new Builder()
4156
.setPlatform(Platform.all())
4257
.setAudience(Audience.all())
4358
.setNotification(Notification.alert(alert)).build();
4459
}
4560

61+
/**
62+
* The shortcut of building a simple message object to all platforms and all audiences
63+
*/
4664
public static PushPayload messageAll(String msgContent) {
4765
return new Builder()
4866
.setPlatform(Platform.all())

src/cn/jpush/api/push/model/audience/AudienceTarget.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,39 @@ public static Builder newBuilder() {
2323
return new Builder();
2424
}
2525

26+
public static AudienceTarget tag(String... tag) {
27+
return newBuilder().setAudienceType(AudienceType.TAG).addAudienceTargetValues(tag).build();
28+
}
29+
30+
public static AudienceTarget tag(Collection<String> tags) {
31+
return newBuilder().setAudienceType(AudienceType.TAG).addAudienceTargetValues(tags).build();
32+
}
33+
34+
public static AudienceTarget tag_and(String... tag) {
35+
return newBuilder().setAudienceType(AudienceType.TAG_AND).addAudienceTargetValues(tag).build();
36+
}
37+
38+
public static AudienceTarget tag_and(Collection<String> tags) {
39+
return newBuilder().setAudienceType(AudienceType.TAG_AND).addAudienceTargetValues(tags).build();
40+
}
41+
42+
public static AudienceTarget alias(String... alias) {
43+
return newBuilder().setAudienceType(AudienceType.ALIAS).addAudienceTargetValues(alias).build();
44+
}
45+
46+
public static AudienceTarget alias(Collection<String> aliases) {
47+
return newBuilder().setAudienceType(AudienceType.ALIAS).addAudienceTargetValues(aliases).build();
48+
}
49+
50+
public static AudienceTarget registrationId(String... registrationId) {
51+
return newBuilder().setAudienceType(AudienceType.REGISTRATION_ID).addAudienceTargetValues(registrationId).build();
52+
}
53+
54+
public static AudienceTarget registrationId(Collection<String> registrationIds) {
55+
return newBuilder().setAudienceType(AudienceType.REGISTRATION_ID).addAudienceTargetValues(registrationIds).build();
56+
}
57+
58+
2659
public AudienceType getAudienceType() {
2760
return this.audienceType;
2861
}

test/cn/jpush/api/push/model/audience/AudienceTargetTests.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
import org.junit.Assert;
44
import org.junit.Test;
55

6-
import cn.jpush.api.push.model.audience.AudienceTarget;
7-
import cn.jpush.api.push.model.audience.AudienceType;
8-
96
import com.google.gson.JsonArray;
107
import com.google.gson.JsonPrimitive;
118

@@ -26,9 +23,7 @@ public void testAlias() {
2623
JsonArray arr = new JsonArray();
2724
arr.add(new JsonPrimitive("aaa"));
2825

29-
AudienceTarget target = AudienceTarget.newBuilder()
30-
.setAudienceType(AudienceType.ALIAS)
31-
.addAudienceTargetValue("aaa").build();
26+
AudienceTarget target = AudienceTarget.alias("aaa");
3227
Assert.assertEquals("", arr, target.toJSON());
3328
}
3429

test/cn/jpush/api/push/model/audience/AudienceTests.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33
import org.junit.Assert;
44
import org.junit.Test;
55

6-
import cn.jpush.api.push.model.audience.Audience;
7-
import cn.jpush.api.push.model.audience.AudienceTarget;
8-
import cn.jpush.api.push.model.audience.AudienceType;
9-
106
import com.google.gson.JsonArray;
117
import com.google.gson.JsonObject;
128
import com.google.gson.JsonPrimitive;
@@ -21,10 +17,7 @@ public void testAll() {
2117

2218
@Test(expected = IllegalArgumentException.class)
2319
public void testAllMore() {
24-
AudienceTarget target = AudienceTarget.newBuilder()
25-
.setAudienceType(AudienceType.ALIAS)
26-
.addAudienceTargetValue("aaaa")
27-
.build();
20+
AudienceTarget target = AudienceTarget.alias("aaaa");
2821
Audience audience = Audience.newBuilder()
2922
.setAll(true)
3023
.addAudienceTarget(target)
@@ -45,10 +38,7 @@ public void testAudience() {
4538
arr.add(new JsonPrimitive("aaaa"));
4639
json.add("alias", arr);
4740

48-
AudienceTarget target = AudienceTarget.newBuilder()
49-
.setAudienceType(AudienceType.ALIAS)
50-
.addAudienceTargetValue("aaaa")
51-
.build();
41+
AudienceTarget target = AudienceTarget.alias("aaaa");
5242
Audience audience = Audience.newBuilder()
5343
.addAudienceTarget(target)
5444
.build();

0 commit comments

Comments
 (0)