PS:如果你是第一次用推送,那就直接按照我的步骤来,再去看官方文档,这样,更容易能理解操作流程.还有——-请耐心看

极光文档(java SDK)请参考

[ 极光文档 ]


步骤一:

  • 首先,你必须在 [极光官网]上注册一个账号
  • 其次,注册完后登录,选择极光开发者服务 
  • 进去之后,创建一个应用,已有应用可跳过 

  • 创建完成 

  • 进入应用,看到AppKey和MasterSecret,这两个参数在sdk集成的时候会用到 


项目中的操作

  • 我是直接用的maven库,毕竟这个年头手动到jar包的项目估计没几个了,如果你是手动导入jar,那么,请去官网下载jar包-o-

Maven方式导入极光推送的依赖jar包

  • PS:将下面全部jar复制到你项目的pom.xml里面(我项目之前本来就有log4j,就没有写到下面,导入的时候注意下,可以参考官网的jar包)
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jpush-client</artifactId>
<version>3.2.17</version>
</dependency> <dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jiguang-common</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.6.Final</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>

记住,以下代码,如果你是单纯的复制粘贴,那么你肯定会报错,有博主自己项目的参数,所以,请复制粘贴后看一下参数(提示什么的)

jar包导入完成

然后在项目中创建一个包和一个类,(类放到包下)取名随便取,毕竟开心最重要 ꉂ ೭(˵¯̴͒ꇴ¯̴͒˵)౨”

好吧推荐取名 :

com.weiwend.jdpush //包名 
jdpush //类名

  • 接下来是jdpush类的操作 
    其实,极光已经给我们集成好了,只需调用推送方法即可

    现在在jdpush类中,先进行android的推送(第一个方法)

  • 在jdpush类中,创建一个方法 : jpushAndroid 
    别忘了!!!!!! app_key和masterSecret 是必须的
   //极光推送>>Android
//Map<String, String> parm是我自己传过来的参数,同学们可以自定义参数
public static void jpushAndroid(Map<String, String> parm) {
// 设置好账号的app_key和masterSecret
String appKey = "**************";
String masterSecret = "************";
//创建JPushClient
JPushClient jpushClient = new JPushClient(masterSecret, appKey);
//推送的关键,构造一个payload
PushPayload payload = PushPayload.newBuilder()
.setPlatform(Platform.android())//指定android平台的用户
.setAudience(Audience.all())//你项目中的所有用户
.setNotification(Notification.android(parm.get("msg"), "这是title", parm))
//发送内容,这里不要盲目复制粘贴,这里是我从controller层中拿过来的参数)
.setOptions(Options.newBuilder().setApnsProduction(false).build())
//这里是指定开发环境,不用设置也没关系
.setMessage(Message.content(parm.get("msg")))//自定义信息
.build(); try {
PushResult pu = jpushClient.sendPush(payload); } catch (APIConnectionException e) {
e.printStackTrace();
} catch (APIRequestException e) {
e.printStackTrace();
}
}

然后又在jdpush类中,再进行ios的推送(第二个方法)

  • 在jdpush类中,创建一个方法 : jpushIOS 
    又别忘了!!!!!! app_key和masterSecret 是必须的
   //极光推送>>ios
//Map<String, String> parm是我自己传过来的参数,同学们可以自定义参数
public static void jpushIOS(Map<String, String> parm) {
// 设置好账号的app_key和masterSecret是必须的
String appKey = "*********************";
String masterSecret = "**********************"; //创建JPushClient
JPushClient jpushClient = new JPushClient(masterSecret, appKey);
PushPayload payload = PushPayload.newBuilder()
.setPlatform(Platform.ios())//ios平台的用户
.setAudience(Audience.all())//所有用户
.setNotification(Notification.newBuilder()
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(parm.get("msg"))
.setBadge(+1)
.setSound("happy")
.addExtras(parm)
.build())
.build())
.setOptions(Options.newBuilder().setApnsProduction(false).build())
.setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())//自定义信息
.build(); try {
PushResult pu = jpushClient.sendPush(payload); } catch (APIConnectionException e) {
e.printStackTrace();
} catch (APIRequestException e) {
e.printStackTrace();
}
}

PS:

  • 以上只是列出了2种推送的方法,(一般设置安卓和ios就够了)还有更多(去看看官网)比如推送winPhone平台,安卓andIos,全部平台,等等等等,自定义去组合,反正你写的方法可以调用
  • 极光已经集成好了众多方法,同学们都是可以点出来的,比如,想设置环境指定为开发,那么就在方法里设置:

.setOptions(Options.newBuilder().setApnsProduction(false).build())

我用的是SSM框架,所以我在controller里面调用我写的推送方法,其他框架调用推送方法也一样

调用简直不要太简单

controller:

//这是我的添加文章的接口方法
//现在我要添加一篇文章后,进行推送
public Map<String, Object> addArticle() throws Exception {
Map<String, Object> result = new HashMap<String, Object>();
....
//省略文章添加的步骤
//从前端页面传个参数过来判断是否推送
if((infoMap.get("is_push").toString()).trim().equals("1")){
//设置推送参数
//这里同学们就可以自定义推送参数了
Map<String, String> parm =new HashMap<String, String>();
//这是我的文章id
parm.put("id",(""+id).trim());
//文章标题
parm.put("Atitle",(String) infoMap.get("Atitle") );
//设置提示信息,内容是文章标题
parm.put("msg",(String) infoMap.get("Atitle") );
//调用ios的
Jdpush.jpushIOS(parm);
//然后调用安卓的
Jdpush.jpushAndroid(parm);
}
return result;
}

这样就推送完了….


童鞋们可能出现的的错误

  • 推送后报错了

Your request params is invalid. Please check them according to error message. 
Error response from JPush server. Should review and fix it. 
//然后状态码是 
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 HTTP Status: 400 
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 Error Code: 1011 
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 Error Message: cannot find user by this audience 
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 Msg ID: 4241206476

  • 这种的话不要慌,去看看你的极光开发者服务>>点进去你的应用>>点击推送>>选择是web|Api下拉框 

应该会看到一条红色的推送记录

比如:

——这就是发送失败了,为什么呢?提示是:

就是说,你当前项目中

没有用户!!!

没有用户!!!

没有用户???

这就很尴尬了 
如果你的项目中有用户, 
但是,是你的参数(setAudience)设置错了,也会也会报错.


po一条视频教程(内容比较简单,试着去理解):

[ 极客学院>>极光推送javaSDK集成使用 ]

还有要注意的是app_key和masterSecret 是必须的

好惹,讲完惹,

最重要的是自学哦

复制粘贴需谨慎

(〜 ̄▽ ̄)〜

极光推送>>java SDK服务端集成后台项目(使用详解)的更多相关文章

  1. 极光推送Jpush(v3)服务端PHP版本的api脚本类

    原文地址:http://www.dodobook.net/php/780 关于极光推送的上一篇文章已经说明了,此处就不多说了.使用v3版本的原因是v2使用到2014年年底就停止了.点击查看上一篇的地址 ...

  2. 极光推送Jpush(v3)服务端PHP版本集成(V3版本只调用推送API)

    因为版本升级,极光推送的API也有了V3,功能也更丰富了,但是对于我们有的用户来说,我们还是只需要调用推送的API就够了. 下载了一份PHP服务端的SDK(下载地址:http://docs.jpush ...

  3. java SDK服务端推送 --极光推送(JPush)

    网址:https://blog.csdn.net/duyusean/article/details/86581475 消息推送在APP应用中越来越普遍,来记录一下项目中用到的一种推送方式,对于Andr ...

  4. 总结:极光推送java服务端(1)

    遇到的问题: 1.怎么用极光推送 2.极光推送发送失败报错 返回{ } 3.透传和推送区别以及怎么设置 我的解决方案: 问题1.极光推送类里面有不同的方法,需要发给那些人就调用相应的方法.有安卓.io ...

  5. 使用极光推送(www.jpush.cn)向安卓手机推送消息【服务端向客户端主送推送】C#语言

    在VisualStudio2010中新建网站JPushAndroid.添加引用json帮助类库Newtonsoft.Json.dll. 在web.config增加appkey和mastersecret ...

  6. 友盟推送 .NET (C#) 服务端 SDK rest api 调用库

    友盟推送 .NET SDK rest api 介绍 该版本是基于友盟推送2.3版本封装的,网上查询了下发现没有.NET版本的调用库,官方也没有封装.NET的版本,只有python.java.php版本 ...

  7. 极光推送android sdk集成步骤

    推送,用极光,大家都说好,哈哈. 进入正题: 1.确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持.(基本上现在都已经支持了,循例说一下)  , ...

  8. 极光推送JAVA代码示例

    一. 准备工作 1. 登录极光推送官网https://www.jpush.cn/,注册账号并登录 2. 创建应用 创建应用过程,详见百度经验:http://jingyan.baidu.com/arti ...

  9. 极光推送-Java后台实现方式一:Http API

    Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请求API:https://api.jpush.cn/v3/push,另一种则是使用官方提供的第三方Java APIjar包,这里先 ...

随机推荐

  1. mongodb系列~mongodb集群介绍与管理

    mongodb 集群维护1 简介    谈谈mongodb的集群架构2 常用的维护命令   1 查看状态 sh.status()         1 version        2 shards: ...

  2. Anaconda使用总结

    序 Python易用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,特别是当你使用Windows的时候.为了解决这些问题,有不少发行版的Python,比如WinPython.An ...

  3. 【SVN】SVN初识

    SVN 介绍 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Sub ...

  4. EMOS之邮件服务器

    作者:邓聪聪 EMOS一键自动安装镜像,邮件服务器配置

  5. 正则表达式处理BT的html嵌套问题

    在博问里面求教大神,把问题搞定.在此做个记录备份,也给碰到类似问题的园友提供解决思路. 简化的业务场景就是,在页面html标签中的属性中嵌套了html标签,怎么用用正则表达式过滤闭合的html标签(& ...

  6. vue 控制 input 的 disabled

    <input type="number" v-model="item.rvb07_1" :disabled="type == 'receiveN ...

  7. $Django Rest Framework-认证组件,权限组件 知识点回顾choices,on_delete

    一 小知识点回顾 #orm class UserInfo (models.Model): id = models.AutoField (primary_key=True) name = models. ...

  8. ASP.NET MVC5高级编程 之 数据注解和验证

    客户端验证逻辑会对用户向表单输入的数据给出一个即时反馈.而之所以需要服务器端验证,是因为来自网络的信息都是不能被信任的. 当在ASP.NET MVC设计模式上下文中谈论验证时,主要关注的是验证模型的值 ...

  9. 【原创】运维基础之Docker(6)性能

    The general result is that Docker is nearly identical to Native performance and faster than KVM in e ...

  10. Jmeter之响应结果乱码解决

    场景: 在测试过程中,我们可能需要查看结果树,但是发现里面的响应数据在“Document”以外的其他表现形式下都有乱码,如下图就是设置了以Text的形式展示,响应数据包含乱码: 分析:原因是Jmete ...