/*** 推送单播通知

*@author* @Date 2017年3月2日

* @Desc*/

public classBaiduPush {publicString[] pushNotificationByUser(String channelId,

Integer deviceType, String message,Mapmap){

String[] results= new String[3];

String retCode= "1";

String retMsg= "";try{//1. 设置developer平台的ApiKey/SecretKey,需到百度推送注册

String apiKey = "";

String secretKey= "";if (deviceType != null && deviceType.intValue() == 4) {//ios

apiKey =Constants.baiduIOSApiKey;

secretKey=Constants.baiduIOSSecretKey;

}else if(deviceType==3){//Android

apiKey =Constants.baiduAndroidApiKey;

secretKey=Constants.baiduAndroidSecretKey;

}//2. 创建PushKeyPair

PushKeyPair pair = newPushKeyPair (apiKey, secretKey);//创建BaiduPushClient,访问SDK接口

BaiduPushClient pushClient = newBaiduPushClient(pair,

BaiduPushConstants.CHANNEL_REST_URL);//3. 注册YunLogHandler,获取本次请求的交互信息

pushClient.setChannelLogHandler(newYunLogHandler() {

@Overridepublic voidonHandle(YunLogEvent event) {

System.out.println(event.getMessage());

}

});

JSONObject notification= newJSONObject();if(deviceType == 4){

JSONObject jsonAPS= newJSONObject();

jsonAPS.put("alert", message);

jsonAPS.put("sound", "ttt");

notification.put("aps", jsonAPS);

notification.put("title", "XXX");//notification.put("key2", "value2");这里用于用户自定义

if (map != null && !map.isEmpty()){

Set customContentMapKeys =map.keySet();

Iterator irt =customContentMapKeys.iterator();while(irt.hasNext()){

String key=(String)irt.next();

String value=(String)map.get(key);

notification.put(key, value);

}

}

}else if(deviceType==3){

notification.put("title", "XXX");

notification.put("description",message);

notification.put("notification_builder_id", 0);

notification.put("notification_basic_style", 4);

notification.put("open_type", 1);

notification.put("url", "http://push.baidu.com");//app上点开推送之后跳转的链接

JSONObject jsonCustormCont = newJSONObject();

jsonCustormCont.put("name", "test"); //自定义内容,key-value

notification.put("custom_content", jsonCustormCont);if (map != null && !map.isEmpty()){//map中放的是用户自定义内容

Set customContentMapKeys =map.keySet();

Iterator irt =customContentMapKeys.iterator();while(irt.hasNext()){

String key=(String)irt.next();

String value=(String)map.get(key);

notification.put(key, value);

}

}

}//4. 创建请求类对象

PushMsgToSingleDeviceRequest request = newPushMsgToSingleDeviceRequest()

.addChannelId(channelId)

.addTopicId(apiKey)

.addMsgExpires(new Integer(3600)). //message有效时间

addMessageType(1).//1:通知,0:透传消息. 默认为0 注:IOS只有通知.

addMessage(notification.toString()).

addDeviceType(deviceType);//deviceType => 3:android, 4:ios//5. 调用pushMessage接口

PushMsgToSingleDeviceResponse response =pushClient.

pushMsgToSingleDevice(request);//6. 认证推送成功

System.out.println("msgId: " +response.getMsgId()+ ",sendTime: " +response.getSendTime());

}catch(PushClientException e) {//ERROROPTTYPE 用于设置异常的处理方式 -- 抛出异常和捕获异常,//‘true‘ 表示抛出, ‘false‘ 表示捕获。

if(BaiduPushConstants.ERROROPTTYPE) {try{throwe;

}catch(PushClientException e1) {

e1.printStackTrace();

}

}else{

e.printStackTrace();

}

}catch(PushServerException e) {if(BaiduPushConstants.ERROROPTTYPE) {try{throwe;

}catch(PushServerException e1) {

e1.printStackTrace();

}

}else{

System.out.println(String.format("requestId: %d, errorCode: %d, errorMsg: %s",

e.getRequestId(), e.getErrorCode(), e.getErrorMsg()));

}

}finally{

results[0] =retCode;

results[1] =retMsg;

}returnresults;

}public static voidmain(String[] args) {

BaiduPush baiduPush= newBaiduPush();

Map map = new HashMap<>();

baiduPush.pushNotificationByUser("clientChannelId", 3, "今天天气不错",map);

}

}

java百度云推送demo_百度云推送java服务端maven安装完整demo相关推荐

  1. Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码

    Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码 一.关于ZXing 1.ZXing是谷歌开源的支持二维码.条形码 等图形的生成类库:支持生成.和解码功能. G ...

  2. java计算机毕业设计融呗智慧金融微资讯移动平台服务端源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计融呗智慧金融微资讯移动平台服务端源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计融呗智慧金融微资讯移动平台服务端源码+系统+数据库+lw文档+myb ...

  3. java计算机毕业设计Vue.js网上书城管理系统设计与实现服务端MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计Vue.js网上书城管理系统设计与实现服务端MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计Vue.js网上书城管理系统设计与实现服务端MyBatis+系统 ...

  4. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  5. Uniapp的消息推送Unipush(在线、离线、服务端)

    基本配置 Hbuild下打开PUSH,Unipush功能,并详细阅读"使用指南".         打包配置安卓包名,例如pts.sh 打包选择自有证书 自有证书生成:D:\Jav ...

  6. 用JPUSH极光推送实现服务端向安装了APP应用的手机推送消息(C#服务端接口)

    这次公司要我们做一个功能,就是当用户成功注册以后,他登录以后要收到消息,当然这个消息是安装了我们的手机APP应用的手机咯. 极光推送的网站的网址是:https://www.jpush.cn/ 极光推送 ...

  7. socket java 客户端_Java基于socket实现的客户端和服务端通信功能完整实例

    本文实例讲述了Java基于socket实现的客户端和服务端通信功能.分享给大家供大家参考,具体如下: 以下代码参考马士兵的聊天项目,先运行ChatServer.java实现端口监听,然后再运行Chat ...

  8. java 网络编程(二) tcp传输实现客户端和服务端进行信息交流

    1.使用Tcp从一台电脑往另一台电脑上发送文本数据 客户端: import java.io.*; import java.net.*; /**** 客户端,* 通过查阅socket对象,发现在该对象建 ...

  9. JAVA Socket实现实时接收TCP消息,让你的服务端通信更高效!

    本文主要介绍如何利用socket实现实时接收服务端发送的TCP消息. 目录 一.需要掌握 二.程序源码 三.运行演示 一.需要掌握 网络调试助手下载:https://www.aliyundrive.c ...

最新文章

  1. 强化学习(九)- 策略梯度方法 - 梯度上升,黑箱优化,REINFORCE算法及CartPole实例
  2. eselasticsearch入门_ElasticSearch入门学习-基础示例(1)
  3. 【数据结构与算法】之深入解析“最长公共前缀”的求解思路与算法示例
  4. 打印modal框中在线生成的二维码
  5. Android API Guides---RenderScript
  6. 1.1 一个简单的脚本
  7. C#多线程学习(六) 互斥对象
  8. 在ASP.Net Core和JAVA中,使用Azure配置密钥——Key Vault
  9. android 图标 textview,Android TextView添加图标ImageView
  10. Vaughn Vernon谈云原生和反应式现状
  11. 微信小程序云开发教程-云函数入门(2)-接收参数、前端调用
  12. XSS跨站点脚本攻击解决方案
  13. 如何更改node.js的控制台字体颜色?
  14. 二维码生成器 python excel_python 自动生成excel
  15. 下载qq付费音乐的demo
  16. <EDEM 基础案例02>Rock Box
  17. 计算机显示网络无权限访问权限,[系统知识]电脑显示无internet访问权限怎么办...
  18. linux rpm和deb的区别,rpm与deb都是什么呢 有什么区别呢
  19. 自建网盘利用OneDrive,oneindex网盘
  20. 计算机会计模块考试,会计电算化考试

热门文章

  1. asp多重查询的解决方案
  2. vim使用四个空格代替TAB键
  3. React官方文档学习笔记(二)
  4. java B2B2C springmvc mybatis电子商务平台源码-Spring Cloud Security
  5. 下面代码打印的结果?
  6. JavaScript数组随机排序
  7. 配置安全的Impala集群集成Sentry
  8. java并发编程(2)——wait和notify解析
  9. ROSA 2012 Enterprise Linux Server 发布
  10. Sinon.JS Sinon.JS