HBuilder+个推服务器实现推送(二)

                                                   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中的例子实现。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值