JPush 服務器消息推送

今天研究了一下JPush推送API調用,JPush即極光推送,其有免費和收費兩種模式。免費的有所限制,如:推送頻率,時間延遲率,成功率等,總之天下

沒有免費的午餐,免費的肯定服務就不會好到哪裏去。下面我們來寫個小例子,模仿一下服務器推送的效果。

首先從極光推送的官網上下載demo,網址http://docs.jpush.cn/display/dev/Index,將服務器端的demo和android端的demo下載下來。接下來就進行服務器

端的代碼編寫,其實服務器端的demo,我們只需要搭建一個web工程,然後將他的服務器端的推送代碼複製到相應的類中就行。

一:在其官網進行註冊,獲取APIKey,和API MasterSecret。

具體的註冊步驟就不詳述了,但是有一點我要吐槽一下,在註冊信息的填寫時,每個信息欄能不能稍微用文字說明一下,最後那個信息欄剛開始真是不知

填什麼。

二:服務器端的代碼編寫:

1、在MyEclipse中新建一個web工程,在他的官網gitHub上,有兩種方式進行工程建立,一種是maven,另外一種則是jar包的方式,因爲熟悉所以就選擇

後一種吧。將相應的jar包複製進web-info目錄下的lib文件夾中。將實例工程中的JPushClientExample類複製到相應的包中。

 

2、實現serlvet監聽類,新建ListenterMain類實現ServletContextListener接口,在contextInitialized調用推送方法。

public class ListenterMain implements ServletContextListener
{

	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void contextInitialized(ServletContextEvent arg0) {
		System.out.println("==========");
		JPushClientExample.testMain();	
	}
}

3、編寫web.xml文件,註冊監聽。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<listener>
		<listener-class>com.lonuery.jpush.ListenterMain</listener-class>
	</listener>
</web-app>

4、編寫推送方法。

	//推送樣例
	private static void testSend() {
        JPushClient jpushClient = new JPushClient(masterSecret, appKey, timeDelay, DeviceEnum.Android, false);
        
		/*NotificationParams params = new NotificationParams();
		params.setReceiverType(ReceiverTypeEnum.TAG);
		params.setReceiverValue(TAG);*/
				
		/*CustomMessageParams params = new CustomMessageParams();
		params.setReceiverType(ReceiverTypeEnum.TAG);
		params.setReceiverValue(TAG);*/

		//MessageResult msgResult = jpushClient.sendNotification(CONTENT, params, null);//推送通知給指定的app		
		//MessageResult msgResult = jpushClient.sendCustomMessage(TITLE, CONTENT, params, null);//推送消息給指定的app
		
		//MessageResult msgResult = jpushClient.sendCustomMessageAll(TITLE, CONTENT);//
		MessageResult msgResult = jpushClient.sendNotificationAll(CONTENT);
        LOG.debug("responseContent - " + msgResult.responseResult.responseContent);
		
        if(msgResult!=null){
	        if (msgResult.isResultOK()) {
		        LOG.info("msgResult - " + msgResult);
		        LOG.info("messageId - " + msgResult.getMessageId());
			} else {
			    if (msgResult.getErrorCode() > 0) {
			        //業務異常
			        LOG.warn("Service error - ErrorCode: "
			                + msgResult.getErrorCode() + ", ErrorMessage: "
			                + msgResult.getErrorMessage());
			    } else {
			        //未到達JPush
			        LOG.error("Other excepitons - "
			                + msgResult.responseResult.exceptionString);
			    }
			}
        }else{
        	System.out.println("MessageResult msgResult is null");
        }
		System.out.println("是空空的黑色");
	}

5、在這個web工程部署到Tomcat中,啓動Tomcat。

三:android客戶端編寫

客戶端無需我們重新編寫,下載他的android demo,導入到Eclipse中,將AndroidManifest.xml中名爲JPUSH_APPKEY改爲之前註冊的app的AppKey就可以了。

下面看下效果:

服務器端代碼我已經上傳到csdn上,歡迎下載:http://download.csdn.net/detail/zkw12358/7359315

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章