極光推送>>java SDK服務端集成后台項目(使用詳解)


PS:如果你是第一次用推送,那就直接按照我的步驟來,再去看官方文檔,這樣,更容易能理解操作流程.還有——-請耐心看

極光文檔(java SDK)請參考

[ 極光文檔 ]


步驟一:

  • 首先,你必須在 [極光官網] 上注冊一個賬號
  • 其次,注冊完后登錄,選擇極光開發者服務 
    這里寫圖片描述
  • 進去之后,創建一個應用,已有應用可跳過 
    這里寫圖片描述

  • 創建完成 
    這里寫圖片描述

  • 進入應用,看到AppKey和MasterSecret,這兩個參數在sdk集成的時候會用到 
    這里寫圖片描述


項目中的操作

  • 我是直接用的maven庫,畢竟這個年頭手動到jar包的項目估計沒幾個了,如果你是手動導入jar,那么,請去官網下載jar包-o-

Maven方式導入極光推送的依賴jar包

  • PS:將下面全部jar復制到你項目的pom.xml里面(我項目之前本來就有log4j,就沒有寫到下面,導入的時候注意下,可以參考官網的jar包)
<dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.2.17</version> </dependency> <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jiguang-common</artifactId> <version>1.0.3</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.6.Final</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.3</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version> </dependency>

 


記住,以下代碼,如果你是單純的復制粘貼,那么你肯定會報錯,有博主自己項目的參數,所以,請復制粘貼后看一下參數(提示什么的)

jar包導入完成

然后在項目中創建一個包和一個類,(類放到包下)取名隨便取,畢竟開心最重要 ꉂ ೭(˵¯̴͒ꇴ¯̴͒˵)౨”

好吧推薦取名 :

com.weiwend.jdpush //包名 
jdpush //類名

  • 接下來是jdpush類的操作 
    其實,極光已經給我們集成好了,只需調用推送方法即可

    現在在jdpush類中,先進行android的推送(第一個方法)

  • 在jdpush類中,創建一個方法 : jpushAndroid 
    別忘了!!!!!! app_key和masterSecret 是必須的
   //極光推送>>Android //Map<String, String> parm是我自己傳過來的參數,同學們可以自定義參數 public static void jpushAndroid(Map<String, String> parm) { // 設置好賬號的app_key和masterSecret String appKey = "**************"; String masterSecret = "************"; //創建JPushClient JPushClient jpushClient = new JPushClient(masterSecret, appKey); //推送的關鍵,構造一個payload PushPayload payload = PushPayload.newBuilder() .setPlatform(Platform.android())//指定android平台的用戶 .setAudience(Audience.all())//你項目中的所有用戶 .setNotification(Notification.android(parm.get("msg"), "這是title", parm)) //發送內容,這里不要盲目復制粘貼,這里是我從controller層中拿過來的參數) .setOptions(Options.newBuilder().setApnsProduction(false).build()) //這里是指定開發環境,不用設置也沒關系 .setMessage(Message.content(parm.get("msg")))//自定義信息 .build(); try { PushResult pu = jpushClient.sendPush(payload); } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { e.printStackTrace(); } }

然后又在jdpush類中,再進行ios的推送(第二個方法)

  • 在jdpush類中,創建一個方法 : jpushIOS 
    又別忘了!!!!!! app_key和masterSecret 是必須的
   //極光推送>>ios
   //Map<String, String> parm是我自己傳過來的參數,同學們可以自定義參數
   public static  void jpushIOS(Map<String, String> parm) {
       // 設置好賬號的app_key和masterSecret是必須的
       String appKey = "*********************"; String masterSecret = "**********************"; //創建JPushClient JPushClient jpushClient = new JPushClient(masterSecret, appKey); PushPayload payload = PushPayload.newBuilder() .setPlatform(Platform.ios())//ios平台的用戶 .setAudience(Audience.all())//所有用戶 .setNotification(Notification.newBuilder() .addPlatformNotification(IosNotification.newBuilder() .setAlert(parm.get("msg")) .setBadge(+1) .setSound("happy") .addExtras(parm) .build()) .build()) .setOptions(Options.newBuilder().setApnsProduction(false).build()) .setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())//自定義信息 .build(); try { PushResult pu = jpushClient.sendPush(payload); } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { e.printStackTrace(); } }

PS:

  • 以上只是列出了2種推送的方法,(一般設置安卓和ios就夠了)還有更多(去看看官網)比如推送winPhone平台,安卓andIos,全部平台,等等等等,自定義去組合,反正你寫的方法可以調用
  • 極光已經集成好了眾多方法,同學們都是可以點出來的,比如,想設置環境指定為開發,那么就在方法里設置:

.setOptions(Options.newBuilder().setApnsProduction(false).build())

我用的是SSM框架,所以我在controller里面調用我寫的推送方法,其他框架調用推送方法也一樣

調用簡直不要太簡單

controller:

//這是我的添加文章的接口方法 //現在我要添加一篇文章后,進行推送 public Map<String, Object> addArticle() throws Exception { Map<String, Object> result = new HashMap<String, Object>(); .... //省略文章添加的步驟 //從前端頁面傳個參數過來判斷是否推送 if((infoMap.get("is_push").toString()).trim().equals("1")){ //設置推送參數 //這里同學們就可以自定義推送參數了 Map<String, String> parm =new HashMap<String, String>(); //這是我的文章id parm.put("id",(""+id).trim()); //文章標題 parm.put("Atitle",(String) infoMap.get("Atitle") ); //設置提示信息,內容是文章標題 parm.put("msg",(String) infoMap.get("Atitle") ); //調用ios的 Jdpush.jpushIOS(parm); //然后調用安卓的 Jdpush.jpushAndroid(parm); } return result; }

這樣就推送完了….


童鞋們可能出現的的錯誤

  • 推送后報錯了

Your request params is invalid. Please check them according to error message. 
Error response from JPush server. Should review and fix it. 
//然后狀態碼是 
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 HTTP Status: 400 
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 Error Code: 1011 
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 Error Message: cannot find user by this audience 
INFO 2017-07-14 11:08:04,208 com.weiwend.jdpush.Jdpush.http-bio-8080-exec-7 Msg ID: 4241206476

  • 這種的話不要慌,去看看你的極光開發者服務>>點進去你的應用>>點擊推送>>選擇是web|Api下拉框 
    這里寫圖片描述

這里寫圖片描述

這里寫圖片描述

應該會看到一條紅色的推送記錄

比如:

這里寫圖片描述

——這就是發送失敗了,為什么呢?提示是:

這里寫圖片描述

就是說,你當前項目中

沒有用戶!!!

沒有用戶!!!

沒有用戶???

這就很尷尬了 
如果你的項目中有用戶, 
但是,是你的參數(setAudience)設置錯了,也會也會報錯.


po一條視頻教程(內容比較簡單,試着去理解):

[ 極客學院>>極光推送javaSDK集成使用 ]

還有要注意的是app_key和masterSecret 是必須的

好惹,講完惹,

最重要的是自學哦

復制粘貼需謹慎

(〜 ̄▽ ̄)〜


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM