11package cn .jpush .api ;
22
3- import java .util .Map ;
4- import java .util .Set ;
5-
63import cn .jpush .api .common .ClientConfig ;
74import cn .jpush .api .common .TimeUnit ;
85import cn .jpush .api .common .Week ;
118import cn .jpush .api .common .resp .APIRequestException ;
129import cn .jpush .api .common .resp .BooleanResult ;
1310import cn .jpush .api .common .resp .DefaultResult ;
14- import cn .jpush .api .device .AliasDeviceListResult ;
15- import cn .jpush .api .device .DeviceClient ;
16- import cn .jpush .api .device .TagAliasResult ;
17- import cn .jpush .api .device .TagListResult ;
11+ import cn .jpush .api .device .*;
1812import cn .jpush .api .push .PushClient ;
1913import cn .jpush .api .push .PushResult ;
2014import cn .jpush .api .push .model .Message ;
2115import cn .jpush .api .push .model .Platform ;
2216import cn .jpush .api .push .model .PushPayload ;
2317import cn .jpush .api .push .model .audience .Audience ;
18+ import cn .jpush .api .push .model .notification .IosAlert ;
2419import cn .jpush .api .push .model .notification .Notification ;
2520import cn .jpush .api .report .MessagesResult ;
2621import cn .jpush .api .report .ReceivedsResult ;
3328import cn .jpush .api .schedule .model .TriggerPayload ;
3429import cn .jpush .api .utils .Preconditions ;
3530
31+ import java .util .Map ;
32+ import java .util .Set ;
33+
3634/**
3735 * The global entrance of JPush API library.
3836 */
@@ -249,6 +247,28 @@ public PushResult sendIosNotificationWithAlias(String alert,
249247 .build ();
250248 return _pushClient .sendPush (payload );
251249 }
250+
251+ /**
252+ * Send an iOS notification with alias.
253+ * If you want to send alert as a Json object, maybe this method is what you needed.
254+ *
255+ * @param alert The wrapper of APNs alert.
256+ * @param extras The extra params.
257+ * @param alias The alias list.
258+ * @return
259+ * @throws APIConnectionException
260+ * @throws APIRequestException
261+ */
262+ public PushResult sendIosNotificationWithAlias (IosAlert alert ,
263+ Map <String , String > extras , String ... alias )
264+ throws APIConnectionException , APIRequestException {
265+ PushPayload payload = PushPayload .newBuilder ()
266+ .setPlatform (Platform .ios ())
267+ .setAudience (Audience .alias (alias ))
268+ .setNotification (Notification .ios (alert , extras ))
269+ .build ();
270+ return _pushClient .sendPush (payload );
271+ }
252272
253273 /**
254274 * Shortcut
@@ -264,6 +284,28 @@ public PushResult sendIosNotificationWithRegistrationID(String alert,
264284 return _pushClient .sendPush (payload );
265285 }
266286
287+ /**
288+ * Send an iOS notification with registrationIds.
289+ * If you want to send alert as a Json object, maybe this method is what you needed.
290+ *
291+ * @param alert The wrapper of APNs alert.
292+ * @param extras The extra params.
293+ * @param registrationID The registration ids.
294+ * @return
295+ * @throws APIConnectionException
296+ * @throws APIRequestException
297+ */
298+ public PushResult sendIosNotificationWithRegistrationID (IosAlert alert ,
299+ Map <String , String > extras , String ... registrationID )
300+ throws APIConnectionException , APIRequestException {
301+ PushPayload payload = PushPayload .newBuilder ()
302+ .setPlatform (Platform .ios ())
303+ .setAudience (Audience .registrationId (registrationID ))
304+ .setNotification (Notification .ios (alert , extras ))
305+ .build ();
306+ return _pushClient .sendPush (payload );
307+ }
308+
267309
268310 // ---------------------- shortcuts - message
269311
@@ -407,6 +449,12 @@ public DefaultResult deleteAlias(String alias, String platform)
407449 return _deviceClient .deleteAlias (alias , platform );
408450 }
409451
452+ public Map <String , OnlineStatus > getUserOnlineStatus (String ... registrationIds )
453+ throws APIConnectionException , APIRequestException
454+ {
455+ return _deviceClient .getUserOnlineStatus (registrationIds );
456+ }
457+
410458 // ----------------------- Schedule
411459
412460 /**
0 commit comments