java后台服务器实现极光推送
2018-06-18 01:12:04来源:未知 阅读 ()
一、添加极光推送所需要的jar包,项目使用的maven,所以只需要在pom文件里添加jar包依赖
<dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.2.3</version> </dependency>
二,编写极光推送工具类
package com.cccuu.project.utils; 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.PushPayload.Builder; import cn.jpush.api.push.model.audience.Audience; import cn.jpush.api.push.model.notification.Notification; /** * 极光推送工具类 */ public class JiGuangPushUtil { //两个参数分别填写你申请的masterSecret和appKey private static JPushClient jPushClient=new JPushClient("masterSecret","appKey"); /** * 通知推送 * 备注:推送方式不为空时,推送的值也不能为空;推送方式为空时,推送值不做要求 * @param type 推送方式:1、“tag”标签推送,2、“alias”别名推送 * @param value 推送的标签或别名值 * @param alert 推送的内容 */ private static void pushNotice(String type,String value,String alert){ Builder builder= PushPayload.newBuilder(); builder.setPlatform(Platform.all());//设置接受的平台,all为所有平台,包括安卓、ios、和微软的 //设置如果用户不在线、离线消息保存的时间 Options options=Options.sendno(); options.setTimeToLive(86400l); //设置为86400为保存一天,如果不设置默认也是保存一天 builder.setOptions(options); //设置推送方式 if(type.equals("alias")){ builder.setAudience(Audience.alias(value));//根据别名推送 }else if(type.equals("tag")){ builder.setAudience(Audience.tag(value));//根据标签推送 }else{ builder.setAudience(Audience.all());//Audience设置为all,说明采用广播方式推送,所有用户都可以接收到 } //设置为采用通知的方式发送消息 builder.setNotification(Notification.alert(alert)); PushPayload pushPayload=builder.build(); try{ //进行推送,实际推送就在这一步 PushResult pushResult=jPushClient.sendPush(pushPayload); }catch(Exception e){ e.printStackTrace(); } } /** * 自定义消息推送 * 备注:推送方式不为空时,推送的值也不能为空;推送方式为空时,推送值不做要求 * @param type 推送方式:1、“tag”标签推送,2、“alias”别名推送 * @param value 推送的标签或别名值 * @param alert 推送的内容 */ private static void pushMsg(String type, String value,String alert){ Builder builder= PushPayload.newBuilder(); builder.setPlatform(Platform.all());//设置接受的平台 if(type.equals("alias")){ builder.setAudience(Audience.alias(value));//别名推送 }else if(type.equals("tag")){ builder.setAudience(Audience.tag(value));//标签推送 }else{ builder.setAudience(Audience.all());//Audience设置为all,说明采用广播方式推送,所有用户都可以接收到 } Message.Builder newBuilder=Message.newBuilder(); newBuilder.setMsgContent(alert);//消息内容 Message message=newBuilder.build(); builder.setMessage(message); PushPayload pushPayload=builder.build(); try{ PushResult pushResult=jPushClient.sendPush(pushPayload); }catch(Exception e){ e.printStackTrace(); } } public static void main(String[] args){ //给标签为kefu的用户进行消息推送 JiGuangPushUtil.pushNotice("tag","kefu","你有新的任务,请及时处理"); } }
代码中采用的是标签或者别名进行推送,需要在在手机APP端进行标签和别名设置,一般是在用户登录之后就设置好,这样只要用户登录,它的绑定别名或者标签就可以保存到极光服务器,而我们推送时,指定这个别名或者标签,就能将信息推送到对应用户的手机上。
其实我们发起推送请求,只是将信息发送到了极光服务器之上,这个信息有一个保存时限,默认一天,只要用户使用手机APP登录系统,极光服务器就会将信息自动推送到对应别名或者标签的手机上,由此可见,信息并非由我们后台直接推送到手机,而是通过极光服务器这个中转站,而这正式极光的工作。
注意:这里告知一个技巧,这个别名设置的时候,其实直接将用户ID设置为别名即可,既方便,又安全,不用再去想办法生成一个唯一的串来进行标识,甚至需要在后台数据库中用户表中新增字段。在标签设置的时候,一般是将一类用户设置为一个标签,然后实现给某类用户群发
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:初探数据结构
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash