极光推送是:使得开发者可以即时地向其应用程序的用户推送通知或者消息,与用户保持互动,从而有效地提高留存率,提升用户体验。简单的说就是通过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<String, Object> extra = new HashMap<String, Object>();
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<String,String> 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下载下来研究研究。

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

最新文章

  1. ABP框架 - 动态Web Api层
  2. tinyshop框架教程已在腾讯课堂开课
  3. centos apache源码安装过程记录
  4. ie、火狐、谷歌浏览器,光标定位问题
  5. tcp通信:多进程共享listen socket方式
  6. eventlet的学习
  7. Custom template tags and filters
  8. 数据库(学习整理)----5--Oracle常用的组函数
  9. JavaScript拖拽
  10. Frontend Development
  11. 咱也玩玩Wordpress
  12. C/C++语言中const的用法
  13. java学习笔记day04
  14. 05-UIKit(UITableViewController)
  15. Cordova原理一
  16. 迈向angularjs2系列(1):typescript指南
  17. 【learning】多项式乘法&amp;fft
  18. Ansible学习总结(1)
  19. mybatis使用oracle的sequence
  20. 牛客网练习赛23 F 托米的游戏

热门文章

  1. XP安装IIS来加载aspx页面(Web调用SAP数据)
  2. 解决导入myeclipse的项目注释和中文是乱码
  3. git worktree
  4. 修改使用phpstorm创建的模板的默认注释
  5. zookeeper 安装与配置
  6. Linux Futex的设计与实现(转)
  7. Python学习(8)字符串
  8. [Uva247][Tarjan求强连通分量][Calling Circles]
  9. JSplitPane demo
  10. CSS3制作日历
  11. digitalocean解释:private networking和user data、IPv6是什么意思
  12. ubuntu 13.10 install wireshark
  13. 域 搭建OU 组织单元
  14. oracle表的操作SQL语句
  15. (转)K-近邻算法(KNN)
  16. SQL表分区之二
  17. sublime text 中文显示异常
  18. leetcode 29-&gt; Divide Two Integers without using multiplication, division and mod operator
  19. suricata 的安装编译
  20. Django ORM基本的单表增删改查