1. 程式人生 > >JPush極光推送 Java呼叫伺服器端API開發

JPush極光推送 Java呼叫伺服器端API開發

       極光推送是:使得開發者可以即時地向其應用程式的使用者推送通知或者訊息,與使用者保持互動,從而有效地提高留存率,提升使用者體驗。簡單的說就是通過JPush後臺管理網站進行app訊息的推送。可以讓使用者及時的收到最新的訊息提示。

       但是往往有時候需要我們自己開發自己的後臺管理網站實現推送的功能,這個時候就需要呼叫JPush提供的API介面,來進行訊息的推送。這裡我只講一些核心API介面,客戶端的網站上有例子大家可以自己下載下來看看。

下面是java後臺的程式碼部分:

public class JPushClientExample {
    //在極光註冊上傳應用的 appKey 和 masterSecret
	private static final String appKey ="a148767f7440ff9daf56457f";////必填,例如466f7032ac604e02fb7bda89
	private static final String masterSecret = "731e374afd796d5942ba1363";//必填,每個應用都對應一個masterSecret
	private static JPushClient jpush = null;
	/*
	 * 儲存離線的時長。秒為單位。最多支援10天(864000秒)。
	 * 0 表示該訊息不儲存離線。即:使用者線上馬上發出,當前不線上使用者將不會收到此訊息。
	 * 此引數不設定則表示預設,預設為儲存1天的離線訊息(86400秒
	 */
	private static long timeToLive =  60 * 60 * 24;  
	public static void main(String[] args) {
		/*
		 * Example1: 初始化,預設傳送給android和ios,同時設定離線訊息存活時間
		 * jpush = new JPushClient(masterSecret, appKey, timeToLive);
		 * 
		 * Example2: 只發送給android		 * 
		 * Example3: 只發送給IOS
		 * jpush = new JPushClient(masterSecret, appKey, DeviceEnum.IOS);
		 * 
		 * Example4: 只發送給android,同時設定離線訊息存活時間
		 * jpush = new JPushClient(masterSecret, appKey, timeToLive, DeviceEnum.Android);
		 */
 		jpush = new JPushClient(masterSecret, appKey, timeToLive);
		/* 
		 * 是否啟用ssl安全連線, 可選
		 * 引數:啟用true, 禁用false,預設為非ssl連線
		 */
		jpush.setEnableSSL(true);

		//測試傳送訊息或者通知
		testSend();
	}
	private static void testSend() {
	    // 在實際業務中,建議 sendNo 是一個你自己的業務可以處理的一個自增數字。
	    // 除非需要覆蓋,請確保不要重複使用。詳情請參考 API 文件相關說明。
//	    Integer num= getRandomSendNo();
	    String sendNo="1900192560";
		String msgTitle = "JPush測試資訊";
		String msgContent = "我是JPush測試資訊,已經成功傳送給你,請查收。";	
		/*
		 * IOS裝置擴充套件引數,
		 * 設定badge,設定聲音
		 */
		Map<String, Object> extra = new HashMap<String, Object>();
		IOSExtra iosExtra = new IOSExtra(1, "WindowsLogonSound.wav");
		extra.put("id1",iosExtra);
		extra.put("id2","I am extra infomation");
		//IOS和安卓一起
		MessageResult msgResult = jpush.sendNotificationWithAppKey(sendNo, msgTitle, msgContent, 0, extra);
		//對所有使用者傳送通知, 更多方法請參考文件
	//	MessageResult msgResult = jpush.sendCustomMessageWithAppKey(sendNo,msgTitle, msgContent);
		if (null != msgResult) {
			System.out.println("伺服器返回資料: " + msgResult.toString());
			if (msgResult.getErrcode() == ErrorCodeEnum.NOERROR.value()) {
				System.out.println("傳送成功, sendNo=" + msgResult.getSendno());
			} else {
				System.out.println("傳送失敗, 錯誤程式碼=" + msgResult.getErrcode() + ", 錯誤訊息=" + msgResult.getErrmsg());
			}
		} else {
			System.out.println("無法獲取資料");
		}	
	}
    public static final int MAX = Integer.MAX_VALUE;
	public static final int MIN = (int) MAX/2;
	/**
	 * 保持 sendNo 的唯一性是有必要的
	 * It is very important to keep sendNo unique.
	 * @return sendNo
	 */
	public static int getRandomSendNo() {
	    return (int) (MIN + Math.random() * (MAX - MIN));
	}
}
開發者可以自己定義傳送的標題,內容,附加資訊,離線等待時間等訊息。用起來特別方便。這裡我就新增這個demo核心的程式碼。有興趣的可以把整個demo下載下來研究研究。

後代java伺服器demo下載+Android客戶端demo+Android執行apk 下載地址連結:點選開啟連結

如果程式碼有問題或者有興趣想要進一步瞭解推送功能可以加我QQ:208017534.  

歡迎打擾各位程式猿打擾交流