• 本篇集成为web项目手动集成JPush

一、获取AppKey、Master Secret

https://docs.jiguang.cn

成为极光用户创建一个应用拿到(AppKey、Master Secret),官网上有很详细的教程

二、官网下载JAVA SDK

https://docs.jiguang.cn//jpush/resources/

三、集成

  • 下载后的SDK包中有相关jar包

  • 将jar包复制到项目lib中

  • 在这里还需要填加一个jar包,否则后面推送消息时会出现json解析错误(小编泪奔~~~)

  • 童鞋们可通过maven下载
  1. <dependency>
  2. <groupId>com.google.code.gson</groupId>
  3. <artifactId>gson</artifactId>
  4. <version>2.3</version>
  5. </dependency>

到这里就集成完毕了,下面看代码

JAVA代码

  1. package pms.schedul;
  2. import java.util.Map;
  3. import cn.jiguang.common.resp.APIConnectionException;
  4. import cn.jiguang.common.resp.APIRequestException;
  5. import cn.jpush.api.JPushClient;
  6. import cn.jpush.api.push.PushResult;
  7. import cn.jpush.api.push.model.Message;
  8. import cn.jpush.api.push.model.Options;
  9. import cn.jpush.api.push.model.Platform;
  10. import cn.jpush.api.push.model.PushPayload;
  11. import cn.jpush.api.push.model.audience.Audience;
  12. import cn.jpush.api.push.model.notification.AndroidNotification;
  13. import cn.jpush.api.push.model.notification.IosNotification;
  14. import cn.jpush.api.push.model.notification.Notification;
  15. public class JiguangPush {
  16. //从官网获取的APP_KEY 与 MASTER_SECRET
  17. private static String APP_KEY = "fe78b87efa0364460541388b";
  18. private static String MASTER_SECRET = "048732da19dc885ee469553f";
  19. //极光推送>>Android
  20. //parm 参数:registrationId设备唯一标识 title推送标题 msg推送消息体
  21. public static void jpushAndroid_registrationId(Map<String, String> parm) {
  22. //创建JPushClient(极光推送的实例)
  23. JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
  24. //推送的关键,构造一个payload
  25. PushPayload payload = PushPayload.newBuilder()
  26. .setPlatform(Platform.android())//指定android平台的用户
  27. .setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户
  28. .setNotification(Notification.android(parm.get("msg"), parm.get("title"), parm))
  29. //发送内容
  30. .setOptions(Options.newBuilder().setApnsProduction(false).build())
  31. //这里是指定开发环境,不用设置也没关系
  32. .setMessage(Message.content(parm.get("msg")))//自定义信息
  33. .build();
  34. try {
  35. PushResult pu = jpushClient.sendPush(payload);
  36. } catch (APIConnectionException e) {
  37. e.printStackTrace();
  38. } catch (APIRequestException e) {
  39. e.printStackTrace();
  40. }
  41. }
  42. //极光推送>>All所有平台
  43. //parm 参数:registrationId设备唯一标识 msg推送消息体
  44. public static void jpushAll(Map<String, String> parm) {
  45. //创建JPushClient
  46. JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
  47. //创建option
  48. PushPayload payload = PushPayload.newBuilder()
  49. .setPlatform(Platform.all()) //所有平台的用户
  50. //.setAudience(Audience.all())//你项目中的所有用户
  51. .setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户
  52. .setNotification(Notification.newBuilder()
  53. .addPlatformNotification(IosNotification.newBuilder() //发送ios
  54. .setAlert(parm.get("msg")) //消息体
  55. .setBadge(+1)
  56. .setSound("happy") //ios提示音
  57. .addExtras(parm) //附加参数
  58. .build())
  59. .addPlatformNotification(AndroidNotification.newBuilder() //发送android
  60. .addExtras(parm) //附加参数
  61. .setAlert(parm.get("msg")) //消息体
  62. .build())
  63. .build())
  64. .setOptions(Options.newBuilder().setApnsProduction(true).build())//指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式)
  65. .setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())//自定义信息
  66. .build();
  67. try {
  68. PushResult pu = jpushClient.sendPush(payload);
  69. System.out.println(pu.toString());
  70. } catch (APIConnectionException e) {
  71. e.printStackTrace();
  72. } catch (APIRequestException e) {
  73. e.printStackTrace();
  74. }
  75. }
  76. }
  • 如有错误请先核实APP_KEY 与MASTER_SECRET

推送实例

  1. @Test
  2. public void pushtest() {
  3. //自定义推送参数
  4. Map<String, String> parm = new HashMap<String, String>();
  5. //这里的id是,移动端集成极光并登陆后,极光用户的rid
  6. parm.put("id", "140fe1da9ef42763ee7");
  7. parm.put("title", "厉害哟!");
  8. //设置提示信息,内容是文章标题
  9. parm.put("msg","极光集成成功!");
  10. JiguangPush.jpushAndroid_registrationId(parm);
  11. }
  • 测试运行一波

完美~~~

JAVA集成JPush的更多相关文章

  1. java集成jpush实现客户端推送

    代码地址如下:http://www.demodashi.com/demo/13700.html 前言 java 集成jpush 实现客户端推送 一.准备工作 开发环境: jdk1.6 Eclipse ...

  2. Android集成JPush极光推送

    推送原理 参考网址:https://blog.csdn.net/huangli1466384630/article/details/79889473 SDK下载 https://docs.jiguan ...

  3. IOS集成JPush

    本篇文章采用Xcode手动集成JPush 证书 参考网址:https://docs.jiguang.cn//jpush/client/iOS/ios_cer_guide/ 下载SDK 下载网址:htt ...

  4. Atitit java集成内嵌浏览器与外嵌浏览器attilax总结

    Atitit java集成内嵌浏览器与外嵌浏览器attilax总结 HTML5将颠覆原生App世界.这听起来有点危言耸听,但若认真分析HTML5的发展史,你会发现,这个世界的发展趋势确实就是这样. 熟 ...

  5. Groovy与Java集成常见的坑(转)

    groovy特性 Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似.它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy 代码能 ...

  6. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...

  7. (九十七)集成JPush实现远程通知和推送的发送

    上节介绍了通过直接和APNS交互实现推送的方法,较为繁琐,最为重要的是发送推送需要特定的服务端,通过JPush,不仅可以简化客户端的接收,还可以通过控制台或者API实现通知的发送. 首先注册JPush ...

  8. java集成swagger

    概览: java集成Swagger Swagger-UI的使用 Springboot跨域请求的访问解决 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 W ...

  9. Groovy与Java集成常见的坑

    摘要: groovy特性 Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似.它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy ...

随机推荐

  1. 搞懂Go垃圾回收

    本文主要介绍了垃圾回收的概念,Golang GC的垃圾回收算法和工作原理,看完本文可以让你对Golang垃圾回收机制有个全面的理解.由于本人不了解其他语言的GC,并未对比其他语言的垃圾回收算法,需要的 ...

  2. Javascript中的基本数据类型,如何判断数据类型,作用域链的理解

    第一部分:Javascript中的数据类型 javascript中 基本数据类型有 五种, 数字 number 字符串 string  布尔 boolean  未定义 undefined 空值 nul ...

  3. 章节十六、1-TestNG简介

    一.TestNG 介绍 1.TestNG 是一个来自 JUnit 和 NUnit 的测试框架,它具拥有更多的功能,提高了 执行的效率. 2.TestNG 是一个开源的自动化测试框架 去除了老框架的大部 ...

  4. 本地在不安装Oracle的情况下安装PLSQL客户端

    本文解决问题:   通常在本地安装PLSQL后,如果本地没有安装Oracle数据库的话,PLSQL是不能使用的,输入远程数据库登录信息会提示:"Oracle Client没有正确安装&quo ...

  5. SpringMVC源码分析4:DispatcherServlet如何找到正确的Controller

    SpringMVC是目前主流的Web MVC框架之一.  我们使用浏览器通过地址 http://ip:port/contextPath/path进行访问,SpringMVC是如何得知用户到底是访问哪个 ...

  6. 逆向破解之160个CrackMe —— 017

    CrackMe —— 017 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  7. 一个接口多个实现类的Spring注入方式

    1. 首先, Interface1 接口有两个实现类 Interface1Impl1 和 Interface1Impl2 Interface1 接口: package com.example.serv ...

  8. Liunx学习总结(五)--包管理

    包管理简介 Linux 上的应用程序一般是以源码形式或者编译后的二进制格式提供给用户使用.对于以源码形式提供的应用程序,用户需要借助于编译器,自行编译成二进制格式才能使用.而即便是编译后的二进制包,用 ...

  9. EF-运行原理

    一.什么是EF? 实体架构(Entity Framework)是微软以来ADO.Net为基础开发出来的对象关系映射(ORM)解决方案,它解决了对象持久化问题,将程序员从编写麻烦的SQL语句中解放出来. ...

  10. Java IO体系之RandomAccessFile浅析

    Java IO体系之RandomAccessFile浅析 一.RandomAccessFile综述: 1.1RandomAccessFile简介 RandomAccessFile是java Io体系中 ...