推送功能在手機應用開發中越來越重要,幾乎成為所有App必備的功能,由於Android本身沒有消息推送機制,通常採用的是基於XMPP協議的推送,但這種開發很麻煩,因此在市場上應運而生了提供消息推送服務的諸多產品,例如:百度雲、個推、極光等。
極光推送正是一個整合了Android推送、iOS推送的統一推送服務平臺。下面傑瑞教育的老師為大家講解一下如何使用極光實現消息推送應用,並重點講解一下如何實現向分組發送消息及推送服務端和自身應用集成,具體實現過程如下:
註冊應用
進入官網
首先進入官網首頁註冊賬號
註冊應用
登錄到用戶平臺,點擊創建應用如圖所示:
包名:創建應用項目的基礎包,單擊創建,產生應用信息如圖所示:
環境搭建
SDK下載
下載 JPUSH Android – SDK。
導入SDK開發包
複製 libs/jpush-sdk-release1.x.y.jar 到工程 libs/ 目錄下
複製 libs/armeabi/libjpush.so 到工程 libs/armeabi 目錄下
配置AndroidManifest.xml
詳細請參照官網文檔中說明進行配置
測試是否成功
集成完成後,JPush 提供的推送服務是默認就已經開啟,這時客戶端就可以接收到來自服務的消息了,可通過登錄到JPush用戶平臺,發送通知測試集成是否成功
如圖所示,如終端收到消息說明集成成功
Android端開發,實現向指定人員推送消息
集成成功之後,服務端發送消息會被所有的安裝應用的客戶端所接收,我們再繼續看看如何在應用中向指定的人群進行消息推送?
要指定向某一個特定的人,或者某一群特定的人,則相對複雜。因為對於 JPush 來說,某一個人就是一個註冊ID,這個註冊ID與開發者App沒有任何關係,或者說對開發者App是沒有意義的。
如果要對開發者App有意義的某個特定的用戶推送消息,則需要:把 JPush 註冊用戶與開發者App 用戶綁定起來。我們可以使用別名與標籤的功能
設置別名(alias)
為安裝了應用程序的用戶,取個別名來標識。以後給該用戶 Push 消息時,就可以用此別名來指定。每個用戶只能指定一個別名。同一個應用中,儘可能為每個客戶端用戶標識唯一名稱,以便服務端能通過該名稱來唯一確定用戶。
調用JPushInterface方法:
public static void setAlias(Context context, String alias, TagAliasCallback callback)
如下所示:
設置標籤(tag)
標籤實質就是將應用客戶根據應用的需要按類別進行分組,服務端可以組為單位來批量下發 Push 消息,這樣組內客戶端所有用戶都可以收到該消息。一個用戶可以打多個標籤,標籤沒有唯一性要求。
調用JPushInterface方法:
public static void setTags(Context context, Set
同時設置組和標籤
也可調用JPushInterface的setAliasAndTags方法同時設置別名和標籤,方法如下:
public static void setAliasAndTags(Context context, String alias, Set
案例實現:
下面代碼實現為登錄的學生設置別名和標籤,別名為其學號,每個用戶有兩個標籤分別是所屬班級和所屬專業,user是用戶登錄成功後的信息
開發消息推送服務端
環境搭建
1.下載服務端SDK
2.在項目中加入jar包
服務端實現步驟
1.創建JPushClient
JPushClient jpushClient = new JPushClient(masterSecret, appKey, 3);
2.構建一個PushPayload對象(推送對象)
確定推送消息的目標,包括推送的平臺(Android、IOS)、消息內容和目標(所有人、別名、標籤),構建簡單的推送對象:向所有平臺,所有人,推送內容為 content 的通知。
推送消息
PushResult result=jpushClient.sendPush(payload);
應用客戶推送消息
參數:payload 即第二步創建的推送對象
返回值:PushResult 表示服務端推送結果
包含下列數據:
msg_id:返回推送消息的id
服務端代碼實現
1.編寫MessagePush組件封裝消息推送方法
JSP頁面
主要是設計表單將數據提交給MessagePushServlet,這裡頁面代碼就不附加了