如何實現App推送?

Tags: 目錄, word,

最近有個朋友想要推送一些訊息到自己的APP上,自己用了HTTP輪詢的方式比較耗電,也比較佔用流量,一旦使用者關閉了程序,訊息則很難觸達,於是,諮詢我有沒有什麼好的解決方案。我告訴他其實可以使用推送,他瞪大眼睛問我推送是什麼?我告訴他其實就是Andriod版的蘋果推送,他才反應過來,問了下其他人,發現身邊很多朋友還不知道有推送這回事情。所以今天就在這裡給大家講下什麼是推送,怎麼使用,以及怎麼利用它來提升自己的留存使用者。

現在其實有很多現成的推送服務可以選擇,比較了幾家主流的我決定用個推來演示整個推送的流程。這個“個推”吸引我的地方在於,商用的使用者比較多,也較穩定,介面也比較簡單。但是它比較低調宣傳也不多,應該是那種悶聲發財的主。

推送的基本原理其實類似,其實就是通過手機和伺服器之間的Socket維持一個TCP長連線,通過這個長連線來實現伺服器和客戶端之間的通訊。所以推送服務的提供商都會同時提供一個庫來供第三方引用,這個嵌入的庫會幫助第三方應用維護和伺服器之間的連線,包括許可權校驗,斷開重連等的工作。這樣暴露給第三方開發者的就是一個簡單的介面了,開發人員不必關心網路的斷開與重連,以及心跳檢測等各種複雜的技術問題。當然,除此以外,這些潛入的庫往往還會封裝一些其他的介面,比如幫助你收到訊息後顯示在通知欄,展示頁面,甚至啟用你的應用,傳遞資料到應用並顯示在應用中的某個介面等。這些功能都可以極大的簡化app開發的工作,有人問我推送和簡訊有什麼區別,我想這些擴充套件的功能就是和簡訊最大的區別吧。至於,之前那個朋友使用HTTP方式輪詢之所以會出現耗電耗流量的情況也是有原因的,因為HTTP請求最終其實還是通過TCP協議實現的,只不過它的TCP連線是短連線,握手非常頻繁,所以自然就比較耗電,而且HTTP方式是基於文字方式進行通訊的,因此協議冗餘比較大,流量消耗自然就大了。而且輪詢方式帶來的問題是,在兩次輪詢之間的時間間隔內是沒辦法拿到伺服器下發的訊息的。因此,實時性會大打折扣。而長連線就沒有這些問題,而且還有個好處,就是當你的應用即使不活躍也沒關係,你也可以有辦法觸達,提升活躍度。當然,長連線也會有它的問題,就是開發的難度較大。而且,手機應用的一個特點是移動,大家都是帶著手機跑的。所以,當你跑進電梯或者隧道的話,如果訊號不好連線就會斷掉,這個時候程式就得重新連線,這就無形中增加了這個東西的難度。

好了,管它怎麼實現的,接下來直接上乾貨!我們來看看怎麼通過推送服務來實現推送的流程。個推的接入流程大致上是下面這樣子的:

超級簡單是吧?接下來我就娓娓道來

註冊帳號

首先登入個推開發者平臺, 點選“立即註冊”:

填寫註冊資訊:

登入郵箱啟用帳號:

反正我就不廢話了,此處略去100字。。。

登記應用

登記應用的詳細頁面,注意紅色部分的文字說明

IOS平臺支援

內嵌服務

接下來下載開發包,注意這個包裡包含了客戶端和服務端的SDK,不要弄錯了(個推為了方便呼叫還做了伺服器端的SDK)

這是下載好的壓縮包,我們先選擇“客戶端”:

進入“客戶端”目錄後,可以先忽略其他目錄直接進入“須匯入的資源”:

進入後,我們看到了下面這些資源:

接下來:

1. 把GetuiSdk-xxx.jar、GetuiExt- xxx.jar以及armeabi資料夾複製到工程根目錄下的libs資料夾中

(若沒有libs目錄,則選中工程右鍵“New”->Folder->命名為“libs”):

2. 右鍵單擊工程,選擇BuildPath中的Configure Build Path...,選中Libraries,並通過AddJars...匯入工程libs目錄下的GetuiSdk-xxx.jar、GetuiExt-xxx.jar檔案。我用的是最新的ADT工具會自動匯入libs目錄下的jar包,所以省略這個步驟。

3. 在初始化的時候加入下面語句:

4. 進入“layout”目錄,把目錄下的四個檔案拷貝到自己工程下的“res/layout/”目錄中:

5. 為了修改通知欄提示圖示,請在res/drawable-hdpi/、res/drawable-mdpi/、res/drawable-ldpi/等各解析度資源目錄下,放置相應尺寸的push.png圖片。該通知欄提示圖示顯示位置如下:

不過我是演示用的,所以這步就略過去了。

6. 接下來一部比較重要,在AndroidManifest.xml裡新增SDK所需的服務宣告和許可權宣告(注意新增在Application標籤裡面):

直接點選“複製程式碼”就可以了,這裡面的配置都是根據你之前的配置動態生成好的。

注意在“ ”標籤裡面新增。

7. 然後在”application”外面新增如下配置:

拷貝好的效果:

嘗試推送

然後安裝應用到Andriod手機上,並點選按鈕:

目錄, word,
相關問題答案