HBuilder+個推伺服器實現推送(二)
阿新 • • 發佈:2019-02-07
以上的程式碼是適合IOS/Android單個使用者傳送,如果想所用使用者或者一部分使用者傳送請檢視SDK中的例子實現。package TestDemo.test; import com.gexin.fastjson.JSONObject; 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.http.IGtPush; import com.gexin.rp.sdk.template.LinkTemplate; import com.gexin.rp.sdk.template.NotificationTemplate; import com.gexin.rp.sdk.template.TransmissionTemplate; import com.gexin.rp.sdk.template.style.Style0; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class PushSingle { //定義常量, appId、appKey、masterSecret 採用本文件 "第二步 獲取訪問憑證 "中獲得的應用配置 private static String appId = "個推上獲取appid"; private static String appKey = "個推上獲取appkey"; private static String masterSecret = "個推上獲取masterSecret"; private static String pushText="{title:'通知標題',content:'通知內容',payload:'通知去幹嘛這裡可以自定義'}"; public static String cid = "這是客戶端ID,單個使用者傳送; //向個推伺服器傳送請求 public static void push(String cid) throws IOException{ IGtPush push = new IGtPush(appKey, masterSecret); push.connect(); SingleMessage message = new SingleMessage(); message.setOffline(true); // 離線有效時間,單位為毫秒,可選 message.setOfflineExpireTime(24 * 3600 * 1000); //推送內容,格式為{title:'通知標題',content:'通知內容',payload:'通知去幹嘛這裡可以自定義'} message.setData(getTemplate()); // 可選,1為wifi,0為不限制網路環境。根據手機處於的網路情況,決定是否下發 message.setPushNetWorkType(0); Target target = new Target(); target.setAppId(appId); target.setClientId(cid); IPushResult ret = push.pushMessageToSingle(message,target); System.out.println(ret.getResponse().toString()); } //生成推送訊息 public static TransmissionTemplate getTemplate() { TransmissionTemplate template = new TransmissionTemplate(); template.setAppId(appId); template.setAppkey(appKey); template.setTransmissionContent(pushText); template.setTransmissionType(2); APNPayload payload = new APNPayload(); //payload.setBadge(0); payload.setContentAvailable(1); payload.setSound("default"); payload.setCategory("$由客戶端定義"); String content=pushText.substring(pushText.indexOf(",content:'")+",content:'".length(),pushText.indexOf("',payload:")); //簡單模式APNPayload.SimpleMsg payload.setAlertMsg(new APNPayload.SimpleAlertMsg(content)); template.setAPNInfo(payload); return template; } }