Java个推消息_移动app整合个推进行消息推送

package com.cxy.bean;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import com.gexin.rp.sdk.base.IAliasResult;

import com.gexin.rp.sdk.base.IBatch;

import com.gexin.rp.sdk.base.IIGtPush;

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.uitls.AppConditions;

import com.gexin.rp.sdk.exceptions.RequestException;

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;public classGetuiUtils {/*AppID:

kk36iGrKYvAPFLdEVhfru6

AppSecret:

qXTAXKDSye5hd2QA3FjsP2

AppKey:

Jux7ogPLMUAybHJcSOmgC7

MasterSecret:

II9oWPnaZK9heOl4keBmS9*/

private static String appId = "kk36iGrKYvAPFLdEVhfru6";private static String appKey = "Jux7ogPLMUAybHJcSOmgC7";private static String masterSecret = "II9oWPnaZK9heOl4keBmS9";public static String host = "https://sdk.open.api.igexin.com/apiex.htm";public static String CID_A = "81a3d3c3bee1adb51d306771af2aeb6a";//在打包后的APP的js中获取 var cId = plus.push.getClientInfo().clientid;

public static String CID_B = "bae837b470994d614f0773097b92dbf3";public staticIGtPush push;static{

push= newIGtPush(host, appKey, masterSecret);

}/**

* 绑定用户cid 别名

*

* @param Alias

* @param CID

* @return*/

public staticboolean bindAlias(String alias, String CID) {

IAliasResult bindSCid=push.bindAlias(appId, alias, CID);if(bindSCid.getResult()) {return true;

}return false;

}/**

* 对单个用户推送消息

*

* @param alias

* @param msg

* @return*/

public staticboolean pushMessageToSingle(String cid, String text, String transMsg) {

IGtPush push= newIGtPush(host, appKey, masterSecret);

NotificationTemplate template= notificationTemplate("title", text, transMsg);

SingleMessage message= newSingleMessage();

message.setOffline(true);//离线有效时间,单位为毫秒,可选

message.setOfflineExpireTime(24 * 3600 * 1000);

message.setData(template);//可选,1为wifi,0为不限制网络环境。根据手机处于的网络情况,决定是否下发

message.setPushNetWorkType(0);

Target target= newTarget();

target.setAppId(appId);

target.setClientId(cid);//target.setAlias(Alias);

IPushResult ret = null;try{

ret=push.pushMessageToSingle(message, target);

}catch(RequestException e) {

e.printStackTrace();

ret=push.pushMessageToSingle(message, target, e.getRequestId());

}if (ret != null && ret.getResponse() != null && ret.getResponse().containsKey("result")) {

System.out.println(ret.getResponse().toString());if (ret.getResponse().get("result").toString().equals("ok") && ret.getResponse().containsKey("status")) {return true;

}

}return false;

}/**

* 指定应用的所有用户群发推送消息

*

* @param msg*/

public staticboolean pushtoAPP(String text, String transMsg) {

IGtPush push= newIGtPush(host, appKey, masterSecret);

NotificationTemplate template= notificationTemplate("title", text, transMsg);

AppMessage message= newAppMessage();

message.setData(template);

message.setOffline(true);//离线有效时间,单位为毫秒,可选

message.setOfflineExpireTime(24 * 1000 * 3600);//推送给App的目标用户需要满足的条件

AppConditions cdt = newAppConditions();

List appIdList = new ArrayList();

appIdList.add(appId);

message.setAppIdList(appIdList);//手机类型

List phoneTypeList = new ArrayList();//省份

List provinceList = new ArrayList();//自定义tag

List tagList = new ArrayList();

cdt.addCondition(AppConditions.PHONE_TYPE, phoneTypeList);

cdt.addCondition(AppConditions.REGION, provinceList);

cdt.addCondition(AppConditions.TAG, tagList);

message.setConditions(cdt);

IPushResult ret= push.pushMessageToApp(message, "msg_toApp");if (ret != null && ret.getResponse() != null && ret.getResponse().containsKey("result")) {

System.out.println(ret.getResponse().toString());if (ret.getResponse().get("result").toString().equals("ok")) {return true;

}

}return false;

}/**

* 对单个用户推送透传消息

*

* @param alias

* @param title

* @param content

* @return*/

public staticboolean pushTransMessageToSingle(String cid, String msg) {

TransmissionTemplate template=transTemplate(cid, msg);

SingleMessage message= newSingleMessage();

message.setOffline(true);//离线有效时间,单位为毫秒,可选

message.setOfflineExpireTime(24 * 3600 * 1000);

message.setData(template);//可选,1为wifi,0为不限制网络环境。根据手机处于的网络情况,决定是否下发

message.setPushNetWorkType(0);

Target target= newTarget();

target.setAppId(appId);

target.setClientId(cid);

IPushResult ret= null;try{

ret=push.pushMessageToSingle(message, target);

}catch(RequestException e) {

e.printStackTrace();

ret=push.pushMessageToSingle(message, target, e.getRequestId());

}if (ret != null && ret.getResponse() != null && ret.getResponse().containsKey("result")) {

System.out.println(ret.getResponse().toString());if (ret.getResponse().get("result").toString().equals("ok") && ret.getResponse().containsKey("status")) {return true;

}

}return false;

}public static void pushMessageToIBatch(Listalias, String msg) {

IBatch batch=push.getBatch();

IPushResult ret= null;try{for (int i = 0; i < alias.size(); i++) {//构建客户a的透传消息a

constructClientTransMsg(alias.get(i), msg, batch);

}//构建客户B的点击通知打开网页消息b//constructClientLinkMsg(CID_B,"msgB",batch);

ret =batch.submit();

}catch(Exception e) {

e.printStackTrace();

}

System.out.println(ret.getResponse().toString());

}private staticNotificationTemplate notificationTemplate(String title, String text, String obj) {

NotificationTemplate template= newNotificationTemplate();//设置APPID与APPKEY

template.setAppId(appId);

template.setAppkey(appKey);//透传消息设置,1为强制启动应用,客户端接收到消息后就会立即启动应用;2为等待应用启动

template.setTransmissionType(1);

template.setTransmissionContent(obj);//设置定时展示时间//template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");

Style0 style = newStyle0();//设置通知栏标题与内容

style.setTitle(title);

style.setText(text);//配置通知栏图标

style.setLogo("XXX");//配置通知栏网络图标//style.setLogoUrl("");//设置通知是否响铃,震动,或者可清除

style.setRing(true);

style.setVibrate(true);

style.setClearable(true);

template.setStyle(style);returntemplate;

}private staticTransmissionTemplate transTemplate(String cid, String msg) {

TransmissionTemplate template= newTransmissionTemplate();//设置APPID与APPKEY

template.setAppId(appId);

template.setAppkey(appKey);

template.setTransmissionContent(msg);

template.setTransmissionType(0); //这个Type为int型,填写1则自动启动app

returntemplate;

}//点击通知打开应用模板

public static voidconstructClientTransMsg(String cid, String msg, IBatch batch) throws Exception {

SingleMessage message= newSingleMessage();

NotificationTemplate template= newNotificationTemplate();//TransmissionTemplate template = new TransmissionTemplate();//自定义模板

template.setAppId(appId);

template.setAppkey(appKey);

template.setTransmissionContent(msg);//消息内容

template.setTransmissionType(1); //这个Type为int型,填写1则自动启动app

Style0 style = new Style0(); //设置通知栏标题与内容

style.setTitle("第一个通知");

style.setText(msg);//配置通知栏图标

style.setLogo("icon.png"); //配置通知栏网络图标

style.setLogoUrl("");//网络图标地址//设置通知是否响铃,震动,或者可清除

style.setRing(true);

style.setVibrate(true);

style.setClearable(true);

template.setStyle(style);

message.setData(template);

message.setOffline(true);

message.setOfflineExpireTime(60 * 60 * 1000);//设置推送目标,填入appid和clientId

Target target = newTarget();

target.setAppId(appId);

target.setClientId(cid);

batch.add(message, target);

}//点击通知打开网页消息

public static voidconstructClientLinkMsg(String cid, String msg, IBatch batch) throws Exception {

SingleMessage message= newSingleMessage();

LinkTemplate template= newLinkTemplate();

template.setAppId(appId);

template.setAppkey(appKey);

template.setTitle("title");

template.setText(msg);

template.setLogo("push.png");

template.setLogoUrl("logoUrl");

template.setUrl("http://www.baidu.com");

message.setData(template);

message.setOffline(true);

message.setOfflineExpireTime(60 * 1000);//设置推送目标,填入appid和clientId

Target target = newTarget();

target.setAppId(appId);

target.setClientId(cid);

batch.add(message, target);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值