个推 APP推送

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

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

该api支持Android和iso的推送。

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

/** 
 * 推送的基类 
 * @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();  
        }  
    }  
}


转载于:https://my.oschina.net/u/2349605/blog/670505

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值