个推的做用:能够为手机端的app使用者推送消息,而不是经过手机上的app对用户发送消息。因此用户是被动的接收信息。固然不仅是只有对用户弹出 窗口的这种方式,也能够把信息推送给app,让app决定对用户实行怎么样的操做,例如在app的栏目中显示出有新信息的图标,以便提升用户体验。java
个推的官网http://www.igetui.com/android
该api支持Android和iso的推送。api
下载个推的sdk,里面有各类不一样文档,其中有android的apk的安装文件,能够进行推送的测试。app
/** * 推送的基类 * @author admin */ 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(); } } 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; /** *对多个app进行推送 **/ 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); //应用APPID template.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.com message.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); //应用APPID template.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); //接收者安装的应用的APPID target1.setClientId(CLIENTID); //接收者的ClientID //如需,可设置多个接收者 // target2.setAppId(APPID2); //接收者2安装应用的APPID // target2.setClientId(CLIENTID2); //接收者2的ClientID targets.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的单个用户进行推送**/ mport 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 block e.printStackTrace(); } } }