博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JPush极光推送 Java调用服务器端API开发
阅读量:5097 次
发布时间:2019-06-13

本文共 4212 字,大约阅读时间需要 14 分钟。

   极光推送是:使得开发者可以即时地向其应用程序的用户推送通知或者消息,与用户保持互动,从而有效地提高留存率,提升用户体验。简单的说就是通过JPush后台管理网站进行app消息的推送。可以让用户及时的收到最新的消息提示。

       但是往往有时候需要我们自己开发自己的后台管理网站实现推送的功能,这个时候就需要调用JPush提供的API接口,来进行消息的推送。这里我只讲一些核心API接口,客户端的网站上有例子大家可以自己下载下来看看。

下面是java后台的代码部分:

public class JPushClientExample {          //在极光注册上传应用的 appKey 和 masterSecret          private static final String appKey ="a148767f7440ff9daf56457f";必填,例如466f7032ac604e02fb7bda89          private static final String masterSecret = "731e374afd796d5942ba1363";//必填,每个应用都对应一个masterSecret          private static JPushClient jpush = null;          /*          * 保存离线的时长。秒为单位。最多支持10天(864000秒)。          * 0 表示该消息不保存离线。即:用户在线马上发出,当前不在线用户将不会收到此消息。          * 此参数不设置则表示默认,默认为保存1天的离线消息(86400秒          */          private static long timeToLive =  60 * 60 * 24;            public static void main(String[] args) {              /*              * Example1: 初始化,默认发送给android和ios,同时设置离线消息存活时间              * jpush = new JPushClient(masterSecret, appKey, timeToLive);              *               * Example2: 只发送给android         *               * Example3: 只发送给IOS              * jpush = new JPushClient(masterSecret, appKey, DeviceEnum.IOS);              *               * Example4: 只发送给android,同时设置离线消息存活时间              * jpush = new JPushClient(masterSecret, appKey, timeToLive, DeviceEnum.Android);              */              jpush = new JPushClient(masterSecret, appKey, timeToLive);              /*               * 是否启用ssl安全连接, 可选              * 参数:启用true, 禁用false,默认为非ssl连接              */              jpush.setEnableSSL(true);                    //测试发送消息或者通知              testSend();          }          private static void testSend() {              // 在实际业务中,建议 sendNo 是一个你自己的业务可以处理的一个自增数字。              // 除非需要覆盖,请确保不要重复使用。详情请参考 API 文档相关说明。      //      Integer num= getRandomSendNo();              String sendNo="1900192560";              String msgTitle = "JPush测试信息";              String msgContent = "我是JPush测试信息,已经成功发送给你,请查收。";                  /*              * IOS设备扩展参数,              * 设置badge,设置声音              */              Map
extra = new HashMap
(); IOSExtra iosExtra = new IOSExtra(1, "WindowsLogonSound.wav"); extra.put("id1",iosExtra); extra.put("id2","I am extra infomation"); //IOS和安卓一起 MessageResult msgResult = jpush.sendNotificationWithAppKey(sendNo, msgTitle, msgContent, 0, extra); //对所有用户发送通知, 更多方法请参考文档 // MessageResult msgResult = jpush.sendCustomMessageWithAppKey(sendNo,msgTitle, msgContent); if (null != msgResult) { System.out.println("服务器返回数据: " + msgResult.toString()); if (msgResult.getErrcode() == ErrorCodeEnum.NOERROR.value()) { System.out.println("发送成功, sendNo=" + msgResult.getSendno()); } else { System.out.println("发送失败, 错误代码=" + msgResult.getErrcode() + ", 错误消息=" + msgResult.getErrmsg()); } } else { System.out.println("无法获取数据"); } } public static final int MAX = Integer.MAX_VALUE; public static final int MIN = (int) MAX/2; /** * 保持 sendNo 的唯一性是有必要的 * It is very important to keep sendNo unique. * @return sendNo */ public static int getRandomSendNo() { return (int) (MIN + Math.random() * (MAX - MIN)); } }
//发送自定义消息    private static PushPayload push_Android(String message) {          Map
map = new HashMap<>(); map.put("测试", "测试1"); Builder msg = Message.newBuilder(); msg.setTitle("衡云title"); msg.setMsgContent("衡云content"); msg.setContentType("type:1"); msg.addExtra("type", 1);// Message.newBuilder(); return PushPayload.newBuilder() .setPlatform(Platform.android()) .setAudience(Audience.tag("200000249hykj")) .setMessage(msg.build()) .build(); }

 

开发者可以自己定义发送的标题,内容,附加信息,离线等待时间等消息。用起来特别方便。这里我就添加这个demo核心的代码。有兴趣的可以把整个demo下载下来研究研究。

 

 

 

 

欢迎打扰各位程序猿打扰交流

转载于:https://www.cnblogs.com/chen-lhx/p/5856452.html

你可能感兴趣的文章
Screening technology proved cost effective deal
查看>>
Redis Cluster高可用集群在线迁移操作记录【转】
查看>>
mysql8.0.13下载与安装图文教程
查看>>
Thrift Expected protocol id ffffff82 but got 0
查看>>
【2.2】创建博客文章模型
查看>>
Kotlin动态图
查看>>
从零开始系列之vue全家桶(1)安装前期准备nodejs+cnpm+webpack+vue-cli+vue-router
查看>>
Jsp抓取页面内容
查看>>
大三上学期软件工程作业之点餐系统(网页版)的一些心得
查看>>
可选参数的函数还可以这样设计!
查看>>
[你必须知道的.NET]第二十一回:认识全面的null
查看>>
Java语言概述
查看>>
关于BOM知识的整理
查看>>
Android设计模式源码解析之外观模式(Facade)
查看>>
使用word发布博客
查看>>
面向对象的小demo
查看>>
微服务之初了解(一)
查看>>
GDOI DAY1游记
查看>>
收集WebDriver的执行命令和参数信息
查看>>
数据结构与算法(三)-线性表之静态链表
查看>>