java個プッシュして実戦を送ります。

11980 ワード

1.jarパッケージのダウンロード先 http://www.getui.com/download/docs/getui/server/GETUI_JAVA_SDK_4.1.00.zip
2.工具類
package com.paotui.util;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

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.payload.APNPayload;
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.NotyPopLoadTemplate;
import com.gexin.rp.sdk.template.TransmissionTemplate;


/**
 *      
 * @author admin
 *
 */
public class WorkerAppPushUtil {
	//  "Java SDK     ", "           "        ,        
	

	/**
	 *         
	 */
	/*private static String develop_appId = "JrKGEGLjyX5F5EkjrlMVf7";
    private static String develop_appKey = "vg08KBdhjm6dPFelX9ocGA";
    private static String develop_masterSecret = "nqAJrLTi626sfOMFtJylL5";*/
	
    
    /**
     *         
     */
    private static String appId = "u40HWS3ee37uPdH24IU6w7";
    private static String appKey = "fVP5VE2Ynj8we5tnMUb2J8";
    private static String masterSecret = "xaV9Cz87up9WtcU85EGUa1";
   
    
 
  /*//     
	private static String appId = "yuZMw1FdKiAbmabphoFM2";
    private static String appKey = "afbzBSp0PV6fD2gAloqHk";
    private static String masterSecret = "CfUUiRPtnv6j73d6ye1LT9";*/
 
	    
    
    static String CID = "e605a0db5ce3cca9b76b012978064940";
    //      
    // static String Alias = "";
    static String host = "http://sdk.open.api.igexin.com/apiex.htm";
    
	/******************************************
	 *      
	 ******************************************/
    
	/**
	 *     
	 * @param json
	 * @return
	 */
	public static String sendSingle(Map map){  
		
		IGtPush push = null;
		
		/*if(map.get("develop")!=null && map.get("develop").toString().equals("1")){
			push = new IGtPush(host, develop_appKey, develop_masterSecret);
		}
		else{
			push = new IGtPush(host, appKey, masterSecret);
		}*/
		push = new IGtPush(host, appKey, masterSecret);
		
		int model = WebUtil.getInteger("model", map);
        SingleMessage message = new SingleMessage();
        
        switch (model) {
		case 1:{
				NotificationTemplate template = notificationTemplateDemo(map);//app
		        message.setData(template);}
				break;
		case 2:{
				LinkTemplate template = linkTemplateDemo(map);//  
				message.setData(template);}
				break;
		case 3:{
			NotyPopLoadTemplate template = notyPopLoadTemplateDemo(map);//          
				message.setData(template);}
				break;
		case 4:{
			TransmissionTemplate template = transmissionTemplateDemo(map);//      
				message.setData(template);}
		
				break;
		case 5:{
			 TransmissionTemplate template =  getTemplate(map);//iOS    (JAVA)
		        message.setData(template);}
				break;

		default:{
				NotificationTemplate template = notificationTemplateDemo(map);//          
		        message.setData(template);}
				break;
		}
        message.setOffline(true);
        //       ,     ,  
        message.setOfflineExpireTime(24 * 3600 * 1000);
        //   ,1 wifi,0        。           ,      
        message.setPushNetWorkType(0); 
        Target target = new Target();
        
       /* if(map.get("develop")!=null && map.get("develop").toString().equals("1")){
        	target.setAppId(develop_appId);
		}
		else{
			target.setAppId(appId);
		}*/
        target.setAppId(appId);
        
        
        target.setClientId(map.get("sev_cid").toString());
        //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) {
//            System.out.println(ret.getResponse().toString());
            return ret.getResponse().toString();
        } else {
//            System.out.println("       ");
            return "";
        }
    }  
	/**
	 *     
	 * @param json
	 * @return
	 */
	public static String sendAll(Map map){  
		IGtPush push = new IGtPush(host, appKey, masterSecret);
		int model = WebUtil.getInteger("model", map);
		
		AppMessage message = new AppMessage();
		switch (model) {
		case 1:{
				NotificationTemplate template = notificationTemplateDemo(map);
		        message.setData(template);}
				break;
		case 2:{
				LinkTemplate template = linkTemplateDemo(map);
				message.setData(template);}
				break;
		case 3:{
			NotyPopLoadTemplate template = notyPopLoadTemplateDemo(map);
				message.setData(template);}
				break;
		case 4:{
			TransmissionTemplate template = transmissionTemplateDemo(map);
				message.setData(template);}
				break;
		case 5:{
			 TransmissionTemplate template =  getTemplate(map);
		        message.setData(template);}
				break;

		default:{
			
				NotificationTemplate template = notificationTemplateDemo(map);
		        message.setData(template);}
				break;
		}
        message.setOffline(true);
        //      ,     ,  
        message.setOfflineExpireTime(24 * 1000 * 3600);
        //   App            
        AppConditions cdt = new AppConditions(); 
        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,"    _toApp");
//        System.out.println(ret.getResponse().toString());
        return ret.getResponse().toString();
	}  
	
	/******************************************
	 *   
	 ******************************************/
	
	//1.          
	public static NotificationTemplate notificationTemplateDemo(Map map) {
	    NotificationTemplate template = new NotificationTemplate();
	    //   APPID APPKEY
        template.setAppId(appId);
        template.setAppkey(appKey);
	    //           
	    template.setTitle(map.get("title").toString());
	    template.setText(map.get("content").toString());
	    //        
	    template.setLogo("");
	    //          
	    template.setLogoUrl("");
	    //         ,  ,     
	    template.setIsRing(true);
	    template.setIsVibrate(true);
	    template.setIsClearable(true);
	    //       ,1       ,                 ;2       
	    template.setTransmissionType(1);
	    template.setTransmissionContent("          ");
	    //         
	    // template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");
	    return template;
	}
		
	//2.           
	public static LinkTemplate linkTemplateDemo(Map map) {
        LinkTemplate template = new LinkTemplate();
        //   APPID APPKEY
        template.setAppId(appId);
        template.setAppkey(appKey);
        //           
        template.setTitle(""+map.get("title"));
        template.setText(""+map.get("content"));
        //        
        template.setLogo("");
        //          ,    URL  
        template.setLogoUrl("");
        //         ,  ,     
        template.setIsRing(true);
        template.setIsVibrate(true);
        template.setIsClearable(true);
        //          
        template.setUrl("http://www.baidu.com");
        return template;
    }
	//3.           
	public static NotyPopLoadTemplate notyPopLoadTemplateDemo(Map map) {
	    NotyPopLoadTemplate template = new NotyPopLoadTemplate();
	    //   APPID APPKEY
	    template.setAppId(appId);
	    template.setAppkey(appKey);
	    //           
	    template.setNotyTitle("        ");
	    template.setNotyContent("        ");
	    //        
	    template.setNotyIcon("");
	    //         ,  ,     
	    template.setBelled(true);
	    template.setVibrationed(true);
	    template.setCleared(true);
	    //          
	    template.setPopTitle("    ");
	    template.setPopContent("    ");
	    //          
	    template.setPopImage("");
	    template.setPopButton1("  ");
	    template.setPopButton2("  ");
	    //       
	    template.setLoadTitle("    ");
	    template.setLoadIcon("file://icon.png");
	    //              
	    template.setLoadUrl("http://gdown.baidu.com/data/wisegame/80bab73f82cc29bf/shoujibaidu_16788496.apk");
	    //         
	    // template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");
	    return template;
	}
	
	//4.       
	public static TransmissionTemplate transmissionTemplateDemo(Map map) {
	    TransmissionTemplate template = new TransmissionTemplate();
	    template.setAppId(appId);
	    template.setAppkey(appKey);
	    //       ,1       ,                 ;2       
	    template.setTransmissionType(2);
	    template.setTransmissionContent("          ");
	    //         
	    // template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");
	    return template;
	}
	
	//5. iOS    (JAVA)
	public static TransmissionTemplate getTemplate(Map map) {
	    TransmissionTemplate template = new TransmissionTemplate();
	    template.setAppId(appId);
	    template.setAppkey(appKey);
	    template.setTransmissionContent("    ");
	    template.setTransmissionType(2);
	    APNPayload payload = new APNPayload();
	    payload.setBadge(1);
	    payload.setContentAvailable(1);
	    payload.setSound("default");
	    payload.setCategory("$      ");
	    //    APNPayload.SimpleMsg 
	    //payload.setAlertMsg(new APNPayload.SimpleAlertMsg(""+map.get("content")));
	    //        
	    payload.setAlertMsg(getDictionaryAlertMsg( map));
	    template.setAPNInfo(payload);
	    return template;
	}
	private static APNPayload.DictionaryAlertMsg getDictionaryAlertMsg(Map map){
	    APNPayload.DictionaryAlertMsg alertMsg = new APNPayload.DictionaryAlertMsg();
	    alertMsg.setBody("");
	    alertMsg.setActionLocKey("ActionLockey");
	    alertMsg.setLocKey(""+map.get("content"));
	    alertMsg.addLocArg("");
	    alertMsg.setLaunchImage("launch-image");
	    // IOS8.2      
	    alertMsg.setTitle(""+map.get("title"));
	    alertMsg.setTitleLocKey(""+map.get("title"));
	    alertMsg.addTitleLocArg("TitleLocArg");
	    return alertMsg;
	}
}
3.必要なところに加入する
//    
int ret=orderDao.distributionOrders(params);
//      
		Map server=orderDao.getServerDetails(params);
		if(WebUtil.getInteger("sev_c_type", server)==1){//1:ios        
			server.put("model",5);//     5  ios  
		}
		server.put("title", "  ");
		server.put("content", "      ");
		WorkerAppPushUtil.sendSingle(server);