JPush极光推送 Java服务器端Demo
2017-02-10 00:09
411 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。
我们知道iOS有自己的推送服务,但很遗憾Android没有原生的推送服务,现在有很多第三方的推送服务,比如个推、极光、亚马逊、百度云、聚能等。今天我们就来研究下极光推送的后台服务器如何实现。
极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供专业、高效的移动消息推送服务。
OK 下面直接来看代码:
附上源码下载:http://download.csdn.net/detail/pingxiaogai/9751338
我们知道iOS有自己的推送服务,但很遗憾Android没有原生的推送服务,现在有很多第三方的推送服务,比如个推、极光、亚马逊、百度云、聚能等。今天我们就来研究下极光推送的后台服务器如何实现。
极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供专业、高效的移动消息推送服务。
OK 下面直接来看代码:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import cn.jiguang.common.ClientConfig; import cn.jiguang.common.resp.APIConnectionException; import cn.jiguang.common.resp.APIRequestException; import cn.jpush.api.JPushClient; import cn.jpush.api.push.PushResult; import cn.jpush.api.push.model.Message; import cn.jpush.api.push.model.Options; import cn.jpush.api.push.model.Platform; import cn.jpush.api.push.model.PushPayload; import cn.jpush.api.push.model.audience.Audience; import cn.jpush.api.push.model.audience.AudienceTarget; import cn.jpush.api.push.model.notification.AndroidNotification; import cn.jpush.api.push.model.notification.IosNotification; import cn.jpush.api.push.model.notification.Notification; public class Test { protected static final Logger LOG = LoggerFactory.getLogger(Test.class); // demo App defined in resources/jpush-api.conf public static final String TITLE = "我是TITLE"; public static final String ALERT = "我是ALERT"; public static final String MSG_CONTENT = "我是MSG_CONTENT"; public static final String REGISTRATION_ID = "0900e8d85ef"; public static final String TAG = "tag_api"; private static String masterSecret = "d0da3fc459ddb6b5fa8acc95"; private static String appKey = "11f46d7cffe4ef99b554e35b"; public static JPushClient jpushClient = null; public static void main(String[] args) { jpushClient = new JPushClient(masterSecret, appKey, null, ClientConfig.getInstance()); // For push, all you need do is to build PushPayload object. // 生成推送的内容,这里我们先测试全部推送 PushPayload payload = buildPushObject_all_alias_alert(); try { System.out.println(payload.toString()); PushResult result = jpushClient.sendPush(payload); System.out.println(result.toString()); LOG.info("Got result - " + result); } catch (APIConnectionException e) { // Connection error, should retry later LOG.error("Connection error, should retry later", e); } catch (APIRequestException e) { // Should review the error, and fix the request LOG.error("Should review the error, and fix the request", e); LOG.info("HTTP Status: " + e.getStatus()); LOG.info("Error Code: " + e.getErrorCode()); LOG.info("Error Message: " + e.getErrorMessage()); } } /** * 快捷地构建推送对象:所有平台,所有设备,内容为 ALERT 的通知。 * @return */ public static PushPayload buildPushObject_all_all_alert() { return PushPayload.alertAll(ALERT); } /** * 构建推送对象:所有平台,推送目标是别名为 "alias1",通知内容为 ALERT。 * @return */ public static PushPayload buildPushObject_all_alias_alert() { return PushPayload.newBuilder() .setPlatform(Platform.all())// 设置接受的平台 .setAudience(Audience.all())// Audience设置为all,说明采用广播方式推送,所有用户都可以接收到 .setNotification(Notification.alert(ALERT)) .build(); } /** * 构建推送对象:平台是 Android,目标是 tag 为 "tag1" 的设备,内容是 Android 通知 ALERT,并且标题为 TITLE。 * @return */ public static PushPayload buildPushObject_android_tag_alertWithTitle() { return PushPayload.newBuilder() .setPlatform(Platform.android()) .setAudience(Audience.all()) .setNotification(Notification.android(ALERT, TITLE, null)) .build(); } /** * 构建推送对象:平台是 iOS,推送目标是 "tag1", "tag_all" 的交集, * 推送内容同时包括通知与消息 - 通知信息是 ALERT,角标数字为 5,通知声音为 "happy", * 并且附加字段 from = "JPush";消息内容是 MSG_CONTENT。通知是 APNs 推送通道的, * 消息是 JPush 应用内消息通道的。APNs 的推送环境是“生产”(如果不显式设置的话,Library 会默认指定为开发) * @return */ public static PushPayload buildPushObject_ios_tagAnd_alertWithExtrasAndMessage() { return PushPayload.newBuilder() .setPlatform(Platform.ios()) .setAudience(Audience.tag_and("tag1", "tag_all")) .setNotification(Notification.newBuilder() .addPlatformNotification(IosNotification.newBuilder() .setAlert(ALERT) .setBadge(5) .setSound("happy") .addExtra("from", "JPush") .build()) .build()) .setMessage(Message.content(MSG_CONTENT)) .setOptions(Options.newBuilder() .setApnsProduction(true) .build()) .build(); } /** * 构建推送对象:平台是 Andorid 与 iOS, * 推送目标是 ("tag1" 与 "tag2" 的并集)交("alias1" 与 "alias2" 的并集), * 推送内容是 - 内容为 MSG_CONTENT 的消息,并且附加字段 from = JPush。 * @return */ public static PushPayload buildPushObject_android_and_ios() { return PushPayload.newBuilder().setPlatform(Platform.android_ios()).setAudience(Audience.tag("tag1")) .setNotification(Notification.newBuilder().setAlert("alert content") .addPlatformNotification(AndroidNotification.newBuilder().setTitle("Android Title").build()) .addPlatformNotification( IosNotification.newBuilder().incrBadge(1).addExtra("extra_key", "extra_value").build()) .build()) .build(); } /** * 构建推送对象:推送内容包含SMS信息 * @return */ public static PushPayload buildPushObject_ios_audienceMore_messageWithExtras() { return PushPayload.newBuilder().setPlatform(Platform.android_ios()) .setAudience(Audience.newBuilder().addAudienceTarget(AudienceTarget.tag("tag1", "tag2")) .addAudienceTarget(AudienceTarget.alias("alias1", "alias2")).build()) .setMessage(Message.newBuilder().setMsgContent(MSG_CONTENT).addExtra("from", "JPush").build()).build(); } }
附上源码下载:http://download.csdn.net/detail/pingxiaogai/9751338
相关文章推荐
- JPush极光推送 Java调用服务器端API开发
- JPush极光推送 Java调用服务器端API开发
- JPush极光推送Java服务器端实例
- JPush极光推送Java服务器端
- JPush极光推送Java服务器端API
- java服务器端调用JPush极光推送api推送通知消息
- JPush极光推送Java服务器端实例
- JPush极光推送Java服务器端API
- JPush极光推送 Java调用服务器端API开发
- Jpush 极光推送java服务器端
- JPush极光推送Java服务器端API
- JPush极光推送 Java调用服务器端API开发
- JPush极光推送 Java调用服务器端API开发
- JPush极光推送Java服务器端实例
- JPush极光推送Java服务器端API
- java服务器端调用JPush极光推送api推送通知消息
- JPush极光推送Java服务器端API
- JPush极光推送Java服务器端API
- JPush极光推送Java服务器端API
- JPush极光推送 Java调用服务器端API开发