个推,手机推送api的使用

时间:2022-05-27 08:36:35

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

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

该api支持Android和iso的推送。

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

 

[java] view plain copy  个推,手机推送api的使用个推,手机推送api的使用
  1. /** 
  2.  * 推送的基类 
  3.  * @author hj 
  4.  */  
  5. public abstract class PushBase {  
  6.       
  7.     protected static final String APPID = "b03c5cfef65ed30108f0a3fd82c3f6b4";  
  8.     protected static final String APPKEY = "110000";  
  9.     protected static final String MASTERSECRET = "a02a76119b20d4e31620d7597a3b4f35";  
  10.     protected static final String CLIENTID = "f8b14fc288a21bc3d675190e9a4db0a4";  
  11.     protected static final String API = "http://sdk.open.api.igexin.com/apiex.htm";     //OpenService接口地址  
  12.       
  13.     protected static String getDate(){  
  14.         Date date = new Date();  
  15.         return date.toLocaleString();  
  16.     }  
  17. }  

 

对多个app进行推送:

[java] view plain copy  个推,手机推送api的使用个推,手机推送api的使用
  1. import java.util.ArrayList;  
  2. import java.util.List;  
  3. import com.gexin.rp.sdk.base.IIGtPush;  
  4. import com.gexin.rp.sdk.base.IPushResult;  
  5. import com.gexin.rp.sdk.base.impl.AppMessage;  
  6. import com.gexin.rp.sdk.http.IGtPush;  
  7. import com.gexin.rp.sdk.template.LinkTemplate;  
  8.   
  9. public class PushMessageToAppTest extends PushBase{  
  10.   
  11.     public static void main(String[] args) {  
  12.   
  13.         // 推送主类  
  14.         IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);  
  15.   
  16.         try {  
  17.   
  18.             AppMessage message = new AppMessage();  
  19.   
  20.             //通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以LinkTemplate为例  
  21.             //在通知栏显示一条含图标、标题等的通知,用户点击可打开您指定的网页  
  22.             LinkTemplate template = new LinkTemplate();  
  23.               
  24.             template.setAppId(APPID);                               //应用APPID  
  25.             template.setAppkey(APPKEY);                         //应用APPKEY  
  26.               
  27.             //通知属性设置:如通知的标题,内容  
  28.             template.setTitle("填写通知标题");                        // 通知标题  
  29.             template.setText("填写通知内容");                 // 通知内容  
  30.             template.setLogo("hello.png");  
  31. //          template.setIsRing(true);                   // 收到通知是否响铃,可选,默认响铃  
  32. //          template.setIsVibrate(true);                    // 收到通知是否震动,可选,默认振动  
  33. //          template.setIsClearable(true);              // 通知是否可清除,可选,默认可清除  
  34.             template.setUrl("http://baidu.com");        //点击通知后打开的网页地址,你可以设定你希望跳转的网页地址如http://www.igetui.com  
  35.   
  36.             message.setData(template);  
  37. //          message.setOffline(true);       //用户当前不在线时,是否离线存储,可选,默认不存储  
  38. //          message.setOfflineExpireTime(72 * 3600 * 1000);     //离线有效时间,单位为毫秒,可选  
  39.   
  40.             List<String> appIdList = new ArrayList<String>();  
  41.             appIdList.add(APPID);  
  42.   
  43.             List<String> phoneTypeList = new ArrayList<String>();//通知接收者的手机操作系统类型,可选  
  44.             phoneTypeList.add("ANDROID");  
  45.   
  46.             List<String> provinceList = new ArrayList<String>();        //通知接收者所在省份,可选  
  47.             provinceList.add("浙江");  
  48.             provinceList.add("上海");  
  49.             provinceList.add("北京");  
  50.               
  51.             List<String> tagList = new ArrayList<String>();         //通知接收者的标签用户,可选  
  52.             tagList.add("填写tags名称");  
  53.   
  54.             message.setAppIdList(appIdList);                  
  55.             message.setPhoneTypeList(phoneTypeList);  
  56.             message.setProvinceList(null);  
  57.             message.setTagList(null);  
  58.   
  59.             IPushResult ret = push.pushMessageToApp(message);     
  60.   
  61.             System.out.println(ret.getResponse().toString());  
  62.         } catch (Exception e) {  
  63.             e.printStackTrace();  
  64.         }  
  65.     }  
  66. }  

 

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

[java] view plain copy  个推,手机推送api的使用个推,手机推送api的使用
  1. import java.util.ArrayList;  
  2. import java.util.List;  
  3. import com.gexin.rp.sdk.base.IIGtPush;  
  4. import com.gexin.rp.sdk.base.IPushResult;  
  5. import com.gexin.rp.sdk.base.impl.ListMessage;  
  6. import com.gexin.rp.sdk.base.impl.Target;  
  7. import com.gexin.rp.sdk.http.IGtPush;  
  8. import com.gexin.rp.sdk.template.NotificationTemplate;  
  9.   
  10. //可接收多个用户,最多为50个  
  11. public class PushMessageToListTest extends PushBase{  
  12.   
  13.     public static void main(String[] args) {  
  14.         //显示每个用户的用户状态,false:不显示,true:显示  
  15.         System.setProperty("gexin.rp.sdk.pushlist.needDetails", "true");  
  16.   
  17.         // 推送主类  
  18.         IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);  
  19.   
  20.         try {  
  21.             ListMessage message = new ListMessage();  
  22.   
  23.             //通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以NotificationTemplate为例  
  24.             //在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用  
  25.             NotificationTemplate template = new NotificationTemplate();  
  26.   
  27.             template.setAppId(APPID);                           //应用APPID  
  28.             template.setAppkey(APPKEY);                         //应用APPKEY  
  29.               
  30.             //通知属性设置:如通知的标题,内容  
  31.             template.setTitle("此处填写通知标题"+getDate());                    // 通知标题  
  32.             template.setText("此处填写通知内容"+getDate());                 // 通知内容  
  33.             template.setLogo("push.png");               // 通知图标,需要客户端开发时嵌入  
  34.             template.setIsRing(false);                  // 收到通知是否响铃,可选,默认响铃  
  35. //          template.setIsVibrate(true);                    // 收到通知是否震动,可选,默认振动  
  36.             template.setIsClearable(true);              // 通知是否可清除,可选,默认可清除  
  37.               
  38.             template.setTransmissionType(2);                // 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动  
  39.             template.setTransmissionContent("你需要透传的内容"+getDate());  // 透传内容(点击通知后SDK将透传内容传给你的客户端,需要客户端做相应开发)  
  40.   
  41.             message.setData(template);  
  42. //          message.setOffline(true);       //用户当前不在线时,是否离线存储,可选,默认不存储  
  43. //          message.setOfflineExpireTime(72 * 3600 * 1000);     //离线有效时间,单位为毫秒,可选  
  44.   
  45.             // 接收者  
  46.             List<Target> targets = new ArrayList<Target>();  
  47.             Target target1 = new Target();  
  48. //          Target target2 = new Target();                      //如果需要可设置多个接收者  
  49.             target1.setAppId(APPID);                            //接收者安装的应用的APPID  
  50.             target1.setClientId(CLIENTID);                      //接收者的ClientID  
  51.   
  52.             //如需,可设置多个接收者  
  53. //          target2.setAppId(APPID2);                           //接收者2安装应用的APPID  
  54. //          target2.setClientId(CLIENTID2);                     //接收者2的ClientID  
  55.   
  56.             targets.add(target1);  
  57. //          targets.add(target2);  
  58.   
  59.             //推送前通过该接口申请“ContentID”  
  60.             String contentId = push.getContentId(message);    
  61.             IPushResult ret = push.pushMessageToList(contentId, targets);  
  62.    
  63.             System.out.println(ret.getResponse().toString());  
  64.         } catch (Exception e) {  
  65.                 e.printStackTrace();  
  66.         }  
  67.     }  
  68. }  

 

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

[java] view plain copy  个推,手机推送api的使用个推,手机推送api的使用
  1. import com.gexin.rp.sdk.base.IIGtPush;  
  2. import com.gexin.rp.sdk.base.IPushResult;  
  3. import com.gexin.rp.sdk.base.impl.SingleMessage;  
  4. import com.gexin.rp.sdk.base.impl.Target;  
  5. import com.gexin.rp.sdk.http.IGtPush;  
  6. import com.gexin.rp.sdk.template.TransmissionTemplate;  
  7. //对单个用户推送  
  8. public class PushMessageToSingleTest extends PushBase{  
  9.       
  10.   
  11.     public static void main(String[] args) {  
  12.         // 推送主类  
  13.         IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);  
  14.   
  15.         try {         
  16.             //单推消息类型   
  17.             SingleMessage message = new SingleMessage();  
  18.   
  19.             //通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以TransmissionTemplate为例  
  20.             //数据经SDK传给您的客户端,由您写代码决定如何处理展现给用户  
  21.             TransmissionTemplate template = new TransmissionTemplate();//透传方式  
  22.             template.setAppId(APPID);  
  23.             template.setAppkey(APPKEY);  
  24.             template.setTransmissionContent("您需要透传的内容:"+getDate());  
  25.               
  26.             //收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动  
  27.             template.setTransmissionType(1);                      
  28.   
  29.             message.setData(template);  
  30. //          message.setOffline(true);                   //用户当前不在线时,是否离线存储,可选  
  31. //          message.setOfflineExpireTime(72 * 3600 * 1000); //离线有效时间,单位为毫秒,可选  
  32.               
  33.             Target target1 = new Target();  
  34.             target1.setAppId(APPID);  
  35.             target1.setClientId(CLIENTID);  
  36.   
  37.             //单推  
  38.             IPushResult ret = push.pushMessageToSingle(message, target1);  
  39.                           
  40.             System.out.println(ret.getResponse().toString());  
  41.         } catch (Exception e) {  
  42.             e.printStackTrace();  
  43.         }  
  44.     }  
  45. }  
[java] view plain copy  个推,手机推送api的使用个推,手机推送api的使用
  1. import com.gexin.rp.sdk.base.IIGtPush;  
  2. import com.gexin.rp.sdk.base.IPushResult;  
  3. import com.gexin.rp.sdk.base.impl.SingleMessage;  
  4. import com.gexin.rp.sdk.base.impl.Target;  
  5. import com.gexin.rp.sdk.http.IGtPush;  
  6. import com.gexin.rp.sdk.template.NotyPopLoadTemplate;  
  7.   
  8. public class PushMessageToSingleTest1 extends PushBase{  
  9.   
  10.     public static void main(String[] args) {  
  11.         // 推送主类  
  12.         IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);  
  13.   
  14.         try {  
  15.   
  16.             // 单推消息类型  
  17.             SingleMessage message = new SingleMessage();  
  18.   
  19.             //通知栏弹框下载模版  
  20.             //在通知栏显示一条含图标、标题等的通知,用户点击后弹出框,用户可以选择直接下载应用或者取消下载应用。  
  21.             NotyPopLoadTemplate template = new NotyPopLoadTemplate();  
  22.             // 是否激活  
  23.             template.setActived(true);  
  24.             // 安卓标识  
  25.             template.setAndroidMark("android_mark");  
  26.             template.setAppId(APPID);  
  27.             template.setAppkey(APPKEY);  
  28.             // 是否自动安装  
  29.             template.setAutoInstall(true);  
  30.             // 是否响铃  
  31.             template.setBelled(true);  
  32.             // 通知是否可清除  
  33.             template.setCleared(true);  
  34.             // 苹果标识  
  35.             template.setIphoneMark("iphone_mark");  
  36.             // 下载图标  
  37.             template.setLoadIcon("");  
  38.             // 下载标题  
  39.             template.setLoadTitle("LoadTitle");  
  40.             // 下载地址  
  41.             template.setLoadUrl("http://dizhensubao.igexin.com/dl/com.ceic.apk");  
  42.             // 通知栏内容  
  43.             template.setNotyContent("NotyContent");  
  44.             // 通知栏图标  
  45.             template.setNotyIcon("");  
  46.             // 通知栏标题  
  47.             template.setNotyTitle("NotyTitle");  
  48.             // 左侧按钮名称  
  49.             template.setPopButton1("下载");  
  50.             // 右侧按钮名称  
  51.             template.setPopButton2("取消");  
  52.             // 弹框内容  
  53.             template.setPopContent("popContent");  
  54.             // 弹框图标  
  55.             template.setPopImage("");  
  56.             // 弹框标题  
  57.             template.setPopTitle("PopTitle");  
  58.             // 塞班标识  
  59.             template.setSymbianMark("symbian_mark");  
  60.             // 是否震动  
  61.             template.setVibrationed(true);  
  62.             message.setData(template);  
  63.             message.setOffline(true);  
  64.             message.setOfflineExpireTime(72 * 3600 * 1000);  
  65.             // 设置优先级  
  66.             message.setPriority(1);  
  67.   
  68.             Target target1 = new Target();  
  69.             target1.setAppId(APPID);  
  70.             target1.setClientId(CLIENTID);  
  71.             // 单推  
  72.             IPushResult ret = push.pushMessageToSingle(message, target1);  
  73.             System.out.println(ret.getResponse().toString());  
  74.         } catch (Exception e) {  
  75.             // TODO Auto-generated catch block  
  76.             e.printStackTrace();  
  77.         }  
  78.     }  
  79. }