HBuilder+个推服务器实现推送(二)
来源:互联网 发布:阿里云快照和镜像 编辑:程序博客网 时间:2024/05/21 08:58
HBuilder+个推服务器(JAVA)实现推送(二)
导读:之前写过一篇文章是由个推网站推送给客户端消息,但是在实际的应用中是需要我们从自己的服务端来发送推送消息给客户端,所以我在服务端写了一个java类,实现发送推送给客户端,我写这个推送的消息类型为透传消息类型,适用于Android和IOS。
首先我们需要在个推官网上下载SDK到本地客户端,由于我的服务端是由java语言编写,在这里我就下载java的SDK。
下载SDK到本地后,我们将资源文件中的jar导入到我们使用的项目中,
好了,包也导入进来了,之后我就直接上代码了。
package TestDemo.test;import com.gexin.fastjson.JSONObject;import com.gexin.rp.sdk.base.IPushResult;import com.gexin.rp.sdk.base.impl.AppMessage;import com.gexin.rp.sdk.base.impl.SingleMessage;import com.gexin.rp.sdk.base.impl.Target;import com.gexin.rp.sdk.base.payload.APNPayload;import com.gexin.rp.sdk.http.IGtPush;import com.gexin.rp.sdk.template.LinkTemplate;import com.gexin.rp.sdk.template.NotificationTemplate;import com.gexin.rp.sdk.template.TransmissionTemplate;import com.gexin.rp.sdk.template.style.Style0;import java.io.IOException;import java.util.ArrayList;import java.util.List;public class PushSingle { //定义常量, appId、appKey、masterSecret 采用本文档 "第二步 获取访问凭证 "中获得的应用配置 private static String appId = "个推上获取appid"; private static String appKey = "个推上获取appkey"; private static String masterSecret = "个推上获取masterSecret"; private static String pushText="{title:'通知标题',content:'通知内容',payload:'通知去干嘛这里可以自定义'}"; public static String cid = "这是客户端ID,单个用户发送; //向个推服务器发送请求 public static void push(String cid) throws IOException{ IGtPush push = new IGtPush(appKey, masterSecret); push.connect(); SingleMessage message = new SingleMessage(); message.setOffline(true); // 离线有效时间,单位为毫秒,可选 message.setOfflineExpireTime(24 * 3600 * 1000); //推送内容,格式为{title:'通知标题',content:'通知内容',payload:'通知去干嘛这里可以自定义'} message.setData(getTemplate()); // 可选,1为wifi,0为不限制网络环境。根据手机处于的网络情况,决定是否下发 message.setPushNetWorkType(0); Target target = new Target(); target.setAppId(appId); target.setClientId(cid); IPushResult ret = push.pushMessageToSingle(message,target); System.out.println(ret.getResponse().toString()); } //生成推送消息 public static TransmissionTemplate getTemplate() { TransmissionTemplate template = new TransmissionTemplate(); template.setAppId(appId); template.setAppkey(appKey); template.setTransmissionContent(pushText); template.setTransmissionType(2); APNPayload payload = new APNPayload(); //payload.setBadge(0); payload.setContentAvailable(1); payload.setSound("default"); payload.setCategory("$由客户端定义"); String content=pushText.substring(pushText.indexOf(",content:'")+",content:'".length(),pushText.indexOf("',payload:")); //简单模式APNPayload.SimpleMsg payload.setAlertMsg(new APNPayload.SimpleAlertMsg(content)); template.setAPNInfo(payload); return template;} }以上的代码是适合IOS/Android单个用户发送,如果想所用用户或者一部分用户发送请查看SDK中的例子实现。
阅读全文
1 0
- HBuilder+个推服务器实现推送(二)
- HBuilder开发的APP使用个推推送消息
- 关于使用个推和hbuilder做推送的研究
- iOS 静默推送实现(推送背景为个推)
- DWR服务器推技术(实现消息实时推送功能)
- Netty实现服务器推Push(Android推送)
- 个推推送项目实用(二)
- hbuilder 个推登记应用
- 关于HBuilder生成app时,plus.push推送SDK权限问题__选用个推方案
- IOS 结合个推实现推送问题
- H5+个推实现消息推送服务
- HBuilder+个推的推动消息(一)
- [个推] 使用个推实现服务器端消息推送,推送结果返回分析
- 推送之个推
- 个推消息推送
- 个推推送步骤
- Android 推送-个推
- 个推推送第三方服务的应用和自我理解(二)
- Spring Boot Junit 测试Controller
- 给初学者的RxJava2.0教程(六)
- docker部署mitmproxy代理抓包(五)
- json往前台传输数据问题
- find 命令用发
- HBuilder+个推服务器实现推送(二)
- Idea安装jrebel破解步骤
- js获取当月有多少天 当朋最后一天是周几
- AngularJs实现聊天列表实时刷新
- VB操作CAD
- Linux一些常用命令学习
- log4j配置详解
- Java的即时编译(Just In Time, JIT)及其优化
- hdoj 1002 (A + B Problem II)