极光推送的简单实现

前言: 

本范例使用的是极光推送V3.0 版本,API调用非常简单, 极光官网:https://www.jiguang.cn/about/ 关于极光推送介绍的非常详细。这里做如下关键总结。

关键步骤,及思路如下:

STEP 1: 登录极光推送官网, 注册一个登录账号 -->开发者服务 -->创建一个应用(只需要填写两个地方: 创建应用的名称 和 包名), 创建好之后, 进入应用详情,如下图:

STEP 2 : 重要信息已如上图红色方框中, 首先点击‘扫描下载安装包’ , 下载后是一个APP, 安装到手机即可。

STEP 3 : 记录下上图红色方框中的AppKey 和 Master Secret这两个值, 并在官网下载最新的服务器端的SDK , 

目前最新的jiguang-common-0.1.6.jar 和 jpush-client-3.2.11.jar 导入项目

STEP 4: 此时所有环境已准备好, 服务器代码走起:

import org.junit.Test;
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.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.SMS;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.Notification;

/**
 * 描述:本例说明激光推送开发大致流程和服务器端的API调用 , 本例是极光3.0版本
 * @author Administrator
 * 时间: 2016年12月11日
 * 
 */
public class 激光推送API范例说明 {
	//一下在极光官网创建项目完成后, 自动生成。
	private static final String AppKey="c8639feee326c295955df533";
	private static final String MasterSecret="11d3b2229b27bd6605decdf0";
	private static JPushClient jPushClient = null;
	static {
		/**
		 * 创建极光推送客户端对象, 有多个。这只是一种方式
		 */
		jPushClient = new JPushClient(MasterSecret, AppKey);
	}
	
	/**
	 * 给使用该应用app的所有用户发送通知消息
	 */
	@Test
	public void test01() {
		try {
			PushResult result = jPushClient.sendNotificationAll("外面的世界很精彩 , 外面的世界很无奈!");
			System.out.println(result);
		} catch (APIConnectionException e) {
			e.printStackTrace();
		} catch (APIRequestException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 对安卓设备, 通过别名来发送通知, 别名是一群用户的分组。
	 */
	@Test
	public void test02() {
		try {
			/**
			 * test是别名, 即所有注册用户是test组的这一群用户进行推送消息。
			 * title: 是发送通知时候, 消息的标题。
			 * sendMessage: 是发送的消息体。
			 */
			PushResult result = jPushClient.sendAndroidNotificationWithAlias("title", "sendMessage", null, "test");
			System.out.println(result);
		} catch (APIConnectionException e) {
			e.printStackTrace();
		} catch (APIRequestException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 对安卓设备,根据别名(组)来发送消息 , 而不是通知。
	 */
	@Test
	public void test03(){
		try {
			PushResult result = jPushClient.sendAndroidMessageWithAlias("title", "msgContent", "test");
			System.out.println(result);
		} catch (APIConnectionException | APIRequestException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 根据注册ID来发送通知
	 */
	@Test
	public void test04() {
		try {
			PushResult result = jPushClient.sendAndroidNotificationWithRegistrationID("title", "messagenotify", null, "140fe1da9ea40dadf57");
			System.out.println(result);
		} catch (APIConnectionException | APIRequestException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 根据注册ID, 来推送消息, 而不是通知
	 */
	@Test
	public void test05() {
		try {
			PushResult result = jPushClient.sendAndroidMessageWithRegistrationID("北京天气预报", "今天是晴转雾霾再转雾霾", "140fe1da9ea40dadf57");
			System.out.println(result);
		} catch (APIConnectionException | APIRequestException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 构建PushPayload实体, 设置推送平台、认证,推送内容等信息。
	 * @throws APIConnectionException
	 * @throws APIRequestException
	 */
	@Test     
	public void test06() throws APIConnectionException, APIRequestException {
		 //构建PushPayload实体, 设置推送平台、认证,推送内容等信息
        PushPayload payload=PushPayload.newBuilder()  
                .setPlatform(Platform.all())//设置接受的平台  
                .setAudience(Audience.all())//Audience设置为all,说明采用广播方式推送,所有用户都可以接收到  
                .setNotification(Notification.alert("中国人民辛苦了!"))  
                .build(); 
        
		PushResult sendPush = jPushClient.sendPush(payload);
		System.out.println(sendPush);
	}
	
	/**
	 * 通过构建PushPayload 来发送消息。
	 */
	@Test
	public void test07() {
		PushPayload pushPayload = PushPayload.newBuilder()
		.setAudience(Audience.registrationId("140fe1da9ea40dadf57"))
		.setPlatform(Platform.android())
		.setMessage(Message.content("hello world! "))
		.build();
		
		System.out.println(pushPayload);
		
		try {
			PushResult sendPush = jPushClient.sendPush(pushPayload);
			System.out.println(sendPush);
		} catch (APIConnectionException | APIRequestException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


以上均已测试成功。可直接使用。



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值