極光推送>>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>
記住,以下程式碼,如果你是單純的複製貼上,那麼你肯定會報錯,有博主自己專案的引數,所以,請複製粘貼後看一下引數(提示什麼的)
然後在專案中建立一個包和一個類,(類放到該包下)取名隨便取
我是這麼取得:
com.XXX.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())
- 大家可以將app_key和masterSecret 定義為全域性變數,將推送方法定義為靜態,這樣更方便呼叫
- 如果你還想再設定其他推送的系統引數,那麼,可以去參考,裡面有引數講解
————————————————–
我用的是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一條視訊教程(內容比較簡單,試著去理解):
還有要注意的是app_key和masterSecret 是必須的
好惹,講完惹,
最重要的是自學哦
複製貼上需謹慎
(〜 ̄▽ ̄)〜
2017-09-16 補充:
PS:推送所有平臺
注意事項:安卓直接忽略開發環境和生產環境,但是ios對環境敏感哦~~~~
(就是安卓不論生產開發都會推送,但是ios必須指定才能推,預設生產模式)
//極光推送>>All所有平臺
public static void jpushAll(Map<String, String> parm) {
// 設定好賬號的ACCESS_KEY和SECRET_KEY
//建立JPushClient
JPushClient jpushClient = new JPushClient(masterSecret, appKey);
//建立option
PushPayload payload = PushPayload.newBuilder()
.setPlatform(Platform.all()) //所有平臺的使用者
.setAudience(Audience.registrationId(parm.get("RegId")))//registrationId指定使用者
.setNotification(Notification.newBuilder()
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(parm.get("msg"))
.setBadge(+1)
.setSound("happy")
.addExtras(parm)
.build())
.addPlatformNotification(AndroidNotification.newBuilder()
.addExtras(parm)
.setAlert(parm.get("msg"))
.build())
.build())
.setOptions(Options.newBuilder().setApnsProduction(true).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();
}
}
相關推薦
極光推送>>java SDK服務端整合後臺專案
PS:如果你是第一次用推送,那就直接按照我的步驟來,再去看官方文件,這樣,更容易能理解操作流程.還有——-請耐心看 極光文件(java SDK)請參考 步驟一: 上註冊一個賬號 其次,註冊完後登入,選擇極光開發者服務 進去之後,建立
【極光推送】jpush服務端開發詳盡過程
package com.weiwend.jdpush.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import jav
JPush極光推送 Java呼叫伺服器端API開發
極光推送是:使得開發者可以即時地向其應用程式的使用者推送通知或者訊息,與使用者保持互動,從而有效地提高留存率,提升使用者體驗。簡單的說就是通過JPush後臺管理網站進行app訊息的推送。可以讓使用者及時的收到最新的訊息提示。 但是往往有時候需要我
極光推送 java 服務端推送api demo(不使用官方的sdk)
極光推送 java 服務端推送api demo(不使用官方的sdk)1 極光推送的核心類如下:import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.asse
Java 消息推送------GoEasy實現服務端推送和web端推送
subscribe rip world 查詢 start easy 需要 註冊 註意 項目中需要消息推送,又想較低開發成本,具體需求:角色用戶在後臺管理頁面發布一個消息,所有用這個系統的用戶無論在哪個頁面都能及時收到他發布的消息,後來我在網上查詢到了一個第三方的免費推送服務
Android開發之第三方推送JPush極光推送知識點詳解 學會整合第三方SDK推送
下面是一些知識點介紹,後期將會帶領大家進行程式碼實戰: 一、Android實現推送方式解決方案: 1、推送方式基礎知識: 在移動網際網路時代以前的手機,如果有事情發生需要通知使用者,則會有一個視窗彈出,將告訴使用者正在發生什麼事情。可能是未接電話
Jpush (極光推送)自定義推送聲音(服務端寫法)
1.JpushClientUtil package com.liuhuan.service; import cn.jiguang.common.resp.APIConnectionException; import cn.jiguang.common.resp.APIR
如何使用極光推送,java服務端向鐳射伺服器進行推送
第一種:使用官方的sdk直接使用 /** * <pre>專案名稱:bsa-admin-api * 檔名稱:Test.java * 包名:com.bsa.api.jiguang * 建立日期:2018年12月10日下午2:30:19 * Copyright (c
java+maven整合極光推送服務
最近有不少想寫想記的東西,可惜最近公司太忙,還有就是我比較懶,一到家裡就不行動了。行了,今天主要是整合極光服務的及時通訊功能,直接記下來好了 我的JAVA專案主要是需要整合極光的推送訊息給android的方,所以可能我只會介紹怎麼給極光推送。
極光推送JPush java服務端程式碼
public void sendNotificationWirhAlias_Android(String title,String notification,String alias){ try { PushPayload payload = PushPayload
使用極光推送實現分組傳送和服務端整合
public class MessagePush { private static final String appKey = "d1c241706d82996e1fcdc2b2"; private static final String masterSecret = "7ee1df1a6
java服務端的 極光推送
dep obj exc sso asa 錯誤碼 返回 消息通道 port 項目中用到了極光推送 下面寫下筆記 首先引入jar包 下載地址https://docs.jiguang.cn/jpush/resources/(非maven項目的下載地址) <depend
AndroidStudio離線打包MUI集成JPush極光推送並在java後端管理推送
覆蓋 如果 dep record tco mat resource 靜態 pkg 1.AndroidStudio離線打包MUI 如何離線打包請參看上篇隨筆《AndroidStudio離線打包MUI》 2.集成極光推送 官方文檔:https://docs.jig
極光推送 使用例項 (一)服務端
原文:http://blog.csdn.net/u014733374/article/detail
服務端:極光推送之單人推送
公司業務需要,需要將符合某一條件的資訊推送到他的手機上。之前沒有做過,在網上找了很多文章已經部落格,感覺大部分都是一樣的(官網上down下來的?),沒有看明白。下面是個很小的程式碼: package test; import cn.jiguang.common.resp.A
Android客戶端與PHP服務端通訊(五)---移植使用極光推送
概述 上一節備研究了示例工程的框架,本節準備自己建立工程,並將極光推送移植到其上。 建立工程 首先建立一個工程,工程名和應用名為lovelife,包名com.lygk.lovelife 一直“Next”,直到Finish,此時建立工程完畢,如下圖
JAVA SDK 極光推送後臺DEMO
pom導依賴 <properties> <comLog.version>1.1.1</comLog.version> </properties> <dependenci
騰訊信鴿推送Java服務端
結合Servlet、傳遞JSON資料,實現信鴿Java服務端向Android客戶端(參考這裡)推送資料 環境 伺服器:winserver 2012、eclipse、tomcat 客戶端 :Mac、Android Stud
Android客戶端與PHP服務端通訊(三)---極光推送註冊使用
概述 推送訊息的方式有很多,在這裡我選擇了極光推送。本節分為上下兩部分,首先通過註冊極光推送並使用其Demo程式來看一下推送的效果,然後再一步一步的修改到自己的應用上。註冊登入極光推送 開發人員基本上都瞭解使用第三方的庫,很多都需要註冊才能使用,極光推送也不
【轉載】極光推送 使用例項 (一)服務端
最近一直在做後臺開發,但心裡還是總惦記著Android,感覺還是Android有意思。正好專案中要用到極光推送,今天抽空來記錄下這兩天的研究成果。 我們知道IOS有自己的推送服務,但很遺憾Android沒有原生的推送服務,現在有很多第三方的推送服務,比如個推、極光、亞馬遜、百度雲、聚能等。今天