1、工具类

  1. package com.test.util;
  2. import cn.jiguang.common.resp.APIConnectionException;
  3. import cn.jiguang.common.resp.APIRequestException;
  4. import cn.jpush.api.JPushClient;
  5. import cn.jpush.api.push.PushResult;
  6. import cn.jpush.api.push.model.Message;
  7. import cn.jpush.api.push.model.Options;
  8. import cn.jpush.api.push.model.Platform;
  9. import cn.jpush.api.push.model.PushPayload;
  10. import cn.jpush.api.push.model.audience.Audience;
  11. import cn.jpush.api.push.model.notification.AndroidNotification;
  12. import cn.jpush.api.push.model.notification.IosNotification;
  13. import cn.jpush.api.push.model.notification.Notification;
  14. import com.yjl.entity.pushMessage.JpushClient;
  15.  
  16. public class JpushClientUtil {
  17.  
  18. private final static String appKey = "极光平台创建应用的appKey";
  19. private final static String masterSecret = "极光平台创建应用的masterSecret";
  20. private static JPushClient jPushClient = new JPushClient(masterSecret, appKey);
  21.  
  22. public static void main(String[] args) {
  23. JpushClient jpushClient = new JpushClient();
  24. jpushClient.setRegistrationId("1a0018970afae35532f");
  25. jpushClient.setMsgContent("这个是消息内容");
  26. jpushClient.setMsgTitle("这个是标题");
  27. jpushClient.setNotificationTitle("这个是通知标题");
  28. jpushClient.setExtrasParam("这个是其他参数内容");
  29. int result = JpushClientUtil.sendToRegistrationId(jpushClient);
  30. System.out.println("推送结果:"+result);
  31. }
  32.  
  33. /**
  34. * 0推送失败,1推送成功
  35. * @param jpushClient
  36. * @return
  37. */
  38. public static int sendToRegistrationId(JpushClient jpushClient) {
  39. int result = ;
  40. try {
  41. PushPayload pushPayload = JpushClientUtil.buildPushObject_all_registrationId_alertWithTitle(jpushClient);
  42. System.out.println(pushPayload);
  43. PushResult pushResult = jPushClient.sendPush(pushPayload);
  44. System.out.println(pushResult);
  45. if (pushResult.getResponseCode() == ) {
  46. result = ;
  47. }
  48. } catch (APIConnectionException e) {
  49. e.printStackTrace();
  50.  
  51. } catch (APIRequestException e) {
  52. e.printStackTrace();
  53. }
  54.  
  55. return result;
  56. }
  57.  
  58. private static PushPayload buildPushObject_all_registrationId_alertWithTitle(JpushClient jpushClient) {
  59. String registrationId = jpushClient.getRegistrationId();
  60. String notification_title = jpushClient.getNotificationTitle();
  61. String msg_title = jpushClient.getMsgTitle();
  62. String msg_content = jpushClient.getMsgContent();
  63. String extrasparam = jpushClient.getExtrasParam();
  64. System.out.println("----------buildPushObject_all_all_alert");
  65. // 创建一个IosAlert对象,可指定APNs的alert、title等字段
  66. // IosAlert iosAlert = IosAlert.newBuilder().setTitleAndBody("title",
  67. // "alert body").build();
  68. return PushPayload.newBuilder()
  69. // 指定要推送的平台,all代表当前应用配置了的所有平台,也可以传android等具体平台
  70. .setPlatform(Platform.all())
  71. // 指定推送的接收对象,all代表所有人,也可以指定已经设置成功的tag或alias或该应应用客户端调用接口获取到的registration
  72. // id
  73. .setAudience(Audience.registrationId(registrationId))
  74. // jpush的通知,android的由jpush直接下发,iOS的由apns服务器下发,Winphone的由mpns下发
  75. .setNotification(Notification.newBuilder()
  76. // 指定当前推送的android通知
  77. .addPlatformNotification(AndroidNotification.newBuilder().setAlert(notification_title)
  78. .setTitle(notification_title)
  79. // 此字段为透传字段,不会显示在通知栏。用户可以通过此字段来做一些定制需求,如特定的key传要指定跳转的页面(value)
  80. .addExtra("sss", extrasparam).build())
  81. // 指定当前推送的iOS通知
  82. .addPlatformNotification(IosNotification.newBuilder()
  83. // 传一个IosAlert对象,指定apns title、title、subtitle等
  84. .setAlert(notification_title)
  85. // 直接传alert
  86. // 此项是指定此推送的badge自动加1
  87. .incrBadge()
  88. // 此字段的值default表示系统默认声音;传sound.caf表示此推送以项目里面打包的sound.caf声音来提醒,
  89. // 如果系统没有此音频则以系统默认声音提醒;此字段如果传空字符串,iOS9及以上的系统是无声音提醒,以下的系统是默认声音
  90. .setSound("sound.caf")
  91. // 此字段为透传字段,不会显示在通知栏。用户可以通过此字段来做一些定制需求,如特定的key传要指定跳转的页面(value)
  92. .addExtra("content", extrasparam).build())
  93. // 此项说明此推送是一个background推送,想了解background看:http://docs.jpush.io/client/ios_tutorials/#ios-7-background-remote-notification
  94. // 取消此注释,消息推送时ios将无法在锁屏情况接收
  95. // .setContentAvailable(true)
  96. .build())
  97. // Platform指定了哪些平台就会像指定平台中符合推送条件的设备进行推送。 jpush的自定义消息,
  98. // sdk默认不做任何处理,不会有通知提示。建议看文档http://docs.jpush.io/guideline/faq/的
  99. // [通知与自定义消息有什么区别?]了解通知和自定义消息的区别
  100. .setMessage(Message.newBuilder()
  101.  
  102. .setMsgContent(msg_content)
  103.  
  104. .setTitle(msg_title)
  105.  
  106. .addExtra("message extras key", extrasparam)
  107.  
  108. .build())
  109.  
  110. .setOptions(Options.newBuilder()
  111. // 此字段的值是用来指定本推送要推送的apns环境,false表示开发,true表示生产;对android和自定义消息无意义
  112. .setApnsProduction(false)
  113. // 此字段是给开发者自己给推送编号,方便推送者分辨推送记录
  114. .setSendno()
  115. // 此字段的值是用来指定本推送的离线保存时长,如果不传此字段则默认保存一天,最多指定保留十天;
  116. .setTimeToLive()
  117.  
  118. .build())
  119.  
  120. .build();
  121.  
  122. }
  123.  
  124. }

2、对象

  1. package com.test.entity.pushMessage;
  2.  
  3. public class JpushClient {
  4.  
  5. private String registrationId;
  6. private String notificationTitle;
  7. private String msgTitle;
  8. private String msgContent;
  9. private String extrasParam;
  10.  
  11. public String getRegistrationId() {
  12. return registrationId;
  13. }
  14.  
  15. public void setRegistrationId(String registrationId) {
  16. this.registrationId = registrationId;
  17. }
  18.  
  19. public String getNotificationTitle() {
  20. return notificationTitle;
  21. }
  22.  
  23. public void setNotificationTitle(String notificationTitle) {
  24. this.notificationTitle = notificationTitle;
  25. }
  26.  
  27. public String getMsgTitle() {
  28. return msgTitle;
  29. }
  30.  
  31. public void setMsgTitle(String msgTitle) {
  32. this.msgTitle = msgTitle;
  33. }
  34.  
  35. public String getMsgContent() {
  36. return msgContent;
  37. }
  38.  
  39. public void setMsgContent(String msgContent) {
  40. this.msgContent = msgContent;
  41. }
  42.  
  43. public String getExtrasParam() {
  44. return extrasParam;
  45. }
  46.  
  47. public void setExtrasParam(String extrasParam) {
  48. this.extrasParam = extrasParam;
  49. }
  50. }

参考链接: https://blog.csdn.net/LWJdear/article/details/77374415

极光推送消息——RegistrationID方式的更多相关文章

  1. 极光推送消息——Alias别称方式(Andirod)

    1.pom文件引入相关jar包 <!--极光推送消息start--> <dependency> <groupId>net.sf.json-lib</group ...

  2. Yii1.1框架实现PHP极光推送消息通知

    一.下载极光推送PHP SDK,解压后放在/protected/components/目录下,如下图所示: 二.完善修改下官方的demo例子,我这里复制一份demo,改为NotifyPush.php, ...

  3. ios之极光推送消息收到以后对消息的处理总结

    当我们的APP收到推送消息后,通常需要根据推送内容点击消息进入到指定的页面 这里讲一下收到推送消息后的处理,分为三种情况 :1.APP处于前台运行情况下     2.APP处于后台挂起情况下   3. ...

  4. ios -- 极光推送《2》--极光推送消息推送成功,但是手机收不到的解决方法

    1.确认证书是否与app的Bundle ID是否一致 2. 确认你的推送证书是否已经过期 3.确认你的APP_KEY是否和极光APP_KEY是否一致 4.正确调用bindChannel,并成功返回ap ...

  5. JPush 极光推送 消息推送 实例

    简介 官网:https://www.jpush.cn/ 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接,从而提高用户活跃度 ...

  6. 极光推送_总结_01_Java实现极光推送

    一.代码实现 1.配置类—Env.java package com.ray.jpush.config; /**@desc : 极光推送接入配置 * * @author: shirayner * @da ...

  7. iOS:极光推送控制器跳转

    在前面已经做完了极光消息的推送,那么有消息了,如何跳转到需要的控制器呢?其实,主要还是在userInfo这个消息里面做判断来处理,具体如下: 下面这两个是远程推送时接收消息的方法,这是应用程序提供的方 ...

  8. Ionic5整合极光推送JPush ( 简单 )

    项目初始化 1. 安装项目依赖: # 安装cordova插件 ionic cordova plugin add jpush-phonegap-plugin --variable APP_KEY=&qu ...

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

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

随机推荐

  1. spring-cloud-kubernetes官方demo运行实战

    关于spring-cloud-kubernetes spring-cloud-kubernetes是springcloud官方推出的开源项目,用于将Spring Cloud和Spring Boot应用 ...

  2. NLP(十七) 利用DNN对Email分类

    数据集 scikit-learn中20个新闻组,总邮件18846,训练集11314,测试集7532,类别20 from sklearn.datasets import fetch_20newsgrou ...

  3. hdu 5903 Square Distance(dp)

    Problem Description A string is called a square string if it can be obtained by concatenating two co ...

  4. python控制台简单实现五子棋

    #棋盘#落子#规则import randomclass chess: def __init__(self): print('#---------------棋盘----------------#') ...

  5. mybatis 批量插入时候的一个注意点

    <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys=&quo ...

  6. CentOS 7 下的网络配置工具

    之前在CentOS 6下编辑网卡,直接使用setup工具就可以了. 但在新版的CentOS 7里,setuptool已经没有网络编辑组件了,取而代之的是NetworkManager Text User ...

  7. MySQL二进制日志分析-概述篇

    MySQL从3.23版本开始引入了二进制日志,用于的数据复制, 二进制日志根据MySQL的版本不同,目前有4个版本: https://dev.mysql.com/doc/internals/en/bi ...

  8. 一次搞懂建模语言UML

    Unified Modeling Language (UML)又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到 ...

  9. 本地代码上传github失败常见错误

    1.上传失败 解决办法如下: 可以通过如下命令进行github与本地代码合并: git pull --rebase origin master 重新执行上传命令: git push -u origin ...

  10. iptables的删除命令中的相关问题

    最近在做一个VPN中间件的配置工作,在配置iptables的时候,当用户想删除EIP(即释放当前连接),发现使用iptables的相关命令会提示错误. iptables: Bad rule (does ...