个推,手机推送api的使用

来源:互联网 发布:sql delete触发器用法 编辑:程序博客网 时间:2024/04/30 21:38

个推的作用:可以为手机端的app使用者推送消息,而不是通过手机上的app对用户发送消息。所以用户是被动的接收信息。当然不只是只有对用户弹出窗口的这种方式,也可以把信息推送给app,让app决定对用户实行怎么样的操作,例如在app的栏目中显示出有新信息的图标,以便提高用户体验。

个推的官网http://www.igetui.com/

该api支持android和iso的推送。

下载个推的sdk,里面有各种不同文档,其中有android的apk的安装文件,可以进行推送的测试。

/** * 推送的基类 * @author hj */public abstract class PushBase {protected static final String APPID = "b03c5cfef65ed30108f0a3fd82c3f6b4";protected static final String APPKEY = "110000";protected static final String MASTERSECRET = "a02a76119b20d4e31620d7597a3b4f35";protected static final String CLIENTID = "f8b14fc288a21bc3d675190e9a4db0a4";protected static final String API = "http://sdk.open.api.igexin.com/apiex.htm"; //OpenService接口地址protected static String getDate(){Date date = new Date();return date.toLocaleString();}}


对多个app进行推送:

import java.util.ArrayList;import java.util.List;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.http.IGtPush;import com.gexin.rp.sdk.template.LinkTemplate;public class PushMessageToAppTest extends PushBase{public static void main(String[] args) {// 推送主类IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);try {AppMessage message = new AppMessage();//通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以LinkTemplate为例//在通知栏显示一条含图标、标题等的通知,用户点击可打开您指定的网页LinkTemplate template = new LinkTemplate();template.setAppId(APPID);//应用APPIDtemplate.setAppkey(APPKEY);//应用APPKEY//通知属性设置:如通知的标题,内容template.setTitle("填写通知标题");// 通知标题template.setText("填写通知内容");// 通知内容template.setLogo("hello.png");//template.setIsRing(true);// 收到通知是否响铃,可选,默认响铃//template.setIsVibrate(true);// 收到通知是否震动,可选,默认振动//template.setIsClearable(true);// 通知是否可清除,可选,默认可清除template.setUrl("http://baidu.com");//点击通知后打开的网页地址,你可以设定你希望跳转的网页地址如http://www.igetui.commessage.setData(template);//message.setOffline(true);//用户当前不在线时,是否离线存储,可选,默认不存储//message.setOfflineExpireTime(72 * 3600 * 1000);//离线有效时间,单位为毫秒,可选List<String> appIdList = new ArrayList<String>();appIdList.add(APPID);List<String> phoneTypeList = new ArrayList<String>();//通知接收者的手机操作系统类型,可选phoneTypeList.add("ANDROID");List<String> provinceList = new ArrayList<String>();//通知接收者所在省份,可选provinceList.add("浙江");provinceList.add("上海");provinceList.add("北京");List<String> tagList = new ArrayList<String>();//通知接收者的标签用户,可选tagList.add("填写tags名称");message.setAppIdList(appIdList);message.setPhoneTypeList(phoneTypeList);message.setProvinceList(null);message.setTagList(null);IPushResult ret = push.pushMessageToApp(message);System.out.println(ret.getResponse().toString());} catch (Exception e) {e.printStackTrace();}}}


对单个app的多个用户进行推送:

import java.util.ArrayList;import java.util.List;import com.gexin.rp.sdk.base.IIGtPush;import com.gexin.rp.sdk.base.IPushResult;import com.gexin.rp.sdk.base.impl.ListMessage;import com.gexin.rp.sdk.base.impl.Target;import com.gexin.rp.sdk.http.IGtPush;import com.gexin.rp.sdk.template.NotificationTemplate;//可接收多个用户,最多为50个public class PushMessageToListTest extends PushBase{public static void main(String[] args) {//显示每个用户的用户状态,false:不显示,true:显示System.setProperty("gexin.rp.sdk.pushlist.needDetails", "true");// 推送主类IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);try {ListMessage message = new ListMessage();//通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以NotificationTemplate为例//在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用NotificationTemplate template = new NotificationTemplate();template.setAppId(APPID);//应用APPIDtemplate.setAppkey(APPKEY);//应用APPKEY//通知属性设置:如通知的标题,内容template.setTitle("此处填写通知标题"+getDate());// 通知标题template.setText("此处填写通知内容"+getDate());// 通知内容template.setLogo("push.png");// 通知图标,需要客户端开发时嵌入template.setIsRing(false);// 收到通知是否响铃,可选,默认响铃//template.setIsVibrate(true);// 收到通知是否震动,可选,默认振动template.setIsClearable(true);// 通知是否可清除,可选,默认可清除template.setTransmissionType(2);// 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动template.setTransmissionContent("你需要透传的内容"+getDate());// 透传内容(点击通知后SDK将透传内容传给你的客户端,需要客户端做相应开发)message.setData(template);//message.setOffline(true);//用户当前不在线时,是否离线存储,可选,默认不存储//message.setOfflineExpireTime(72 * 3600 * 1000);//离线有效时间,单位为毫秒,可选// 接收者List<Target> targets = new ArrayList<Target>();Target target1 = new Target();//Target target2 = new Target();//如果需要可设置多个接收者target1.setAppId(APPID);//接收者安装的应用的APPIDtarget1.setClientId(CLIENTID);//接收者的ClientID//如需,可设置多个接收者//target2.setAppId(APPID2);//接收者2安装应用的APPID//target2.setClientId(CLIENTID2);//接收者2的ClientIDtargets.add(target1);//targets.add(target2);//推送前通过该接口申请“ContentID”String contentId = push.getContentId(message);IPushResult ret = push.pushMessageToList(contentId, targets); System.out.println(ret.getResponse().toString());} catch (Exception e) {e.printStackTrace();}}}


对单个app的单个用户进行推送:

import com.gexin.rp.sdk.base.IIGtPush;import com.gexin.rp.sdk.base.IPushResult;import com.gexin.rp.sdk.base.impl.SingleMessage;import com.gexin.rp.sdk.base.impl.Target;import com.gexin.rp.sdk.http.IGtPush;import com.gexin.rp.sdk.template.TransmissionTemplate;//对单个用户推送public class PushMessageToSingleTest extends PushBase{public static void main(String[] args) {// 推送主类IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);try {//单推消息类型 SingleMessage message = new SingleMessage();//通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以TransmissionTemplate为例//数据经SDK传给您的客户端,由您写代码决定如何处理展现给用户TransmissionTemplate template = new TransmissionTemplate();//透传方式template.setAppId(APPID);template.setAppkey(APPKEY);template.setTransmissionContent("您需要透传的内容:"+getDate());//收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动template.setTransmissionType(1);message.setData(template);//message.setOffline(true);//用户当前不在线时,是否离线存储,可选//message.setOfflineExpireTime(72 * 3600 * 1000);//离线有效时间,单位为毫秒,可选Target target1 = new Target();target1.setAppId(APPID);target1.setClientId(CLIENTID);//单推IPushResult ret = push.pushMessageToSingle(message, target1);System.out.println(ret.getResponse().toString());} catch (Exception e) {e.printStackTrace();}}}
import com.gexin.rp.sdk.base.IIGtPush;import com.gexin.rp.sdk.base.IPushResult;import com.gexin.rp.sdk.base.impl.SingleMessage;import com.gexin.rp.sdk.base.impl.Target;import com.gexin.rp.sdk.http.IGtPush;import com.gexin.rp.sdk.template.NotyPopLoadTemplate;public class PushMessageToSingleTest1 extends PushBase{public static void main(String[] args) {// 推送主类IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);try {// 单推消息类型SingleMessage message = new SingleMessage();//通知栏弹框下载模版//在通知栏显示一条含图标、标题等的通知,用户点击后弹出框,用户可以选择直接下载应用或者取消下载应用。NotyPopLoadTemplate template = new NotyPopLoadTemplate();// 是否激活template.setActived(true);// 安卓标识template.setAndroidMark("android_mark");template.setAppId(APPID);template.setAppkey(APPKEY);// 是否自动安装template.setAutoInstall(true);// 是否响铃template.setBelled(true);// 通知是否可清除template.setCleared(true);// 苹果标识template.setIphoneMark("iphone_mark");// 下载图标template.setLoadIcon("");// 下载标题template.setLoadTitle("LoadTitle");// 下载地址template.setLoadUrl("http://dizhensubao.igexin.com/dl/com.ceic.apk");// 通知栏内容template.setNotyContent("NotyContent");// 通知栏图标template.setNotyIcon("");// 通知栏标题template.setNotyTitle("NotyTitle");// 左侧按钮名称template.setPopButton1("下载");// 右侧按钮名称template.setPopButton2("取消");// 弹框内容template.setPopContent("popContent");// 弹框图标template.setPopImage("");// 弹框标题template.setPopTitle("PopTitle");// 塞班标识template.setSymbianMark("symbian_mark");// 是否震动template.setVibrationed(true);message.setData(template);message.setOffline(true);message.setOfflineExpireTime(72 * 3600 * 1000);// 设置优先级message.setPriority(1);Target target1 = new Target();target1.setAppId(APPID);target1.setClientId(CLIENTID);// 单推IPushResult ret = push.pushMessageToSingle(message, target1);System.out.println(ret.getResponse().toString());} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


工程下载地址:http://download.csdn.net/detail/wxwzy738/7263297


0 1
原创粉丝点击