一、使用個推服務向手機端推送資料首先需要具備以下條件:
1、個推賬号(個推官網注冊)
2、由蘋果推送證書生成的.p12檔案(ANDROID不需要證書)
3、個推SDK(個推官網下載下傳)
二、以上條件具備後,開始架構推送服務
1、在申請的個推賬号上:登記應用→添加.p12證書(IOS)→測試→登記成功
2、在app中內建個推的SDK(個推官網有文檔)
3、找到剛才登記的應用→建立推送→填入相關資訊→發送
三、使用java背景做資料推送
1、上述條件及架構完成後,在eclipes或myeclipse中建立一個項目
2、在項目中加入jar包(我的下載下傳資源裡有):
commons-codec-1.2.jar
commons-configuration-1.6.jar
commons-logging-1.0.3.jar
gexin-rp-sdk-base-4.0.0.2.jar
gexin-rp-sdk-http-4.0.0.2.jar
gexin-rp-sdk-template-4.0.0.2.jar
jackson-all-1.8.5.jar
protobuf-java-2.5.0.jar
3、建立推送類
4、在類中加入以下代碼:
package com.push.util;
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONObject;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.AppMessage;
import com.gexin.rp.sdk.base.impl.ListMessage;
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.exceptions.RequestException;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.TransmissionTemplate;
public class PushMsgUtil {
//個推服務位址
static String host = "http://sdk.open.api.igexin.com/apiex.htm";
public static Boolean pusMsgToSingle(String appId,String appKey,String master,String CID,String obj){
IGtPush push = new IGtPush(host, appKey, master);
//擷取透傳模闆
TransmissionTemplate template = getTemplate(appId, appKey,obj);
SingleMessage message = new SingleMessage();
//是否支援離線推送(true:支援,false:不支援)
message.setOffline(true);
//離線有效時間,機關為毫秒,可選
message.setOfflineExpireTime(24 * 3600 * 1000);
message.setData(template);
//可選。判斷是否用戶端是否wifi環境下推送,1為在WIFI環境下,0為不限制網絡環境。
message.setPushNetWorkType(0);
//設定推送目标
Target target = new Target();
//根據CID推送(CID和使用者别名隻能2者選其一)
target.setAppId(appId);
target.setClientId(CID);
//别名推送
// String alias = "張三";
// 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){
String flag = (String) ret.getResponse().get("result");
if(flag.equals("ok")){
System.out.println(ret.getResponse().toString());
return true;
}
System.out.println(ret.getResponse().toString());
}else{
System.out.println("伺服器響應異常");
}
return false;
}
public static TransmissionTemplate getTemplate(String appId,String appKey,String obj) {
TransmissionTemplate template = new TransmissionTemplate();
template.setAppId(appId);
template.setAppkey(appKey);
template.setTransmissionContent(obj);
template.setTransmissionType(2);
APNPayload payload = new APNPayload();
payload.setBadge(1);
payload.setContentAvailable(1);
payload.setSound("default");
payload.setCategory("$由用戶端定義");
template.setAPNInfo(payload);
return template;
}
public static void main(String[] args) {
String appId = "et3Y5mTvvV5Wthq1cufvy1";
String appKey = "ImPMrVNUxtAvC1VH3KUsa2";
String master = "1wbcrbMyls62zvp1vieLm2";
String CID = "f135c2609e68cb4eab5a30ae6f25c63d";
JSONObject obj = new JSONObject();
obj.put("title", "個推測試");
obj.put("info", "當你看到我時,說明已經成功了!");
//單推
Boolean flag = PushMsgUtil.pusMsgToSingle(appId, appKey, master, CID, obj.toString());
System.out.println(flag);
}
}
四、此條很重要
咳咳...:
1、此文乃俺原創
2、也是餓第一次發帖
3、在此寫下鄙人的座右銘:
微笑→_→讓生活更美好!
4、祝福看到的你:幸福快樂!(沒錯就是你,哈哈..)