Google推送的集成使用介紹

Google在2016年I/O大會上,宣佈了全新的Firebase,Google推送服務也停止更新,全面集成到FireBase中。下面簡要介紹下Android端firebase推送的使用:

1、首先登陸Firebase官網

理所當然,你需要學習科學上網。

官網地址: https://firebase.google.com/

2、登陸google賬號

沒有的可以在官網進行免費註冊,註冊步驟這裏就不贅述了。

3、創建項目

如圖所示:起一個項目名地區可以選擇美國等有google服務的地區

1.png

4、創建項目後,創建應用

如下圖所示:創建一個你準備使用推送功能的Android應用

2.png

3.png

這裏,需要獲取到SHA1,詳細說下SHA1的獲取步驟:

(1) 這裏使用的是JRE中的keytool,首先,在JRE安裝文件夾bin目錄下找到keytool.exe,以管理員模式運行。

(2) 打開windows的cmd.exe,鍵入

4.png

注意:路徑要根據自己的.android文件夾的位置進行調整

(3) 默認的Android Studio的keystore的密令是android

(4) 鍵入密令後獲得SHA1

5.png

5、點擊添加應用

點擊之後會自動下載一個名稱爲google-services.json的文件,這個是和應用關聯的配置文件。這個文件要放置到模塊的根目錄下:

6.png

6、進行項目環境的配置

首先,在項目的build.gradle文件添加一條規則,以包含Google服務插件:

7.png

然後,在app(或需要使用的模塊中)的build.gradle文件中,在底部添加 apply plugin 行,以啓動Gradle插件,同時還應該爲自己需要實用的功能添加依賴,如下圖中,添加了firebase的Analytics框架。如果是要使用推送功能,應該添加

compile ‘com.google.firebase:firebase-messaging:9.6.1’ (注意:此版本可能不是最新,建議查看官方)

8.png

7、添加代碼,處理消息

AppFireBaseInstanceIDService是用來獲取設備token上傳給你自己的服務器的,服務器拿着token去給FireBase的平臺傳送需要推的消息。 AppFirebaMessagingService是用來處理前臺消息的。這裏特別說明下,谷歌推送將推送消息分爲兩種:一種是你的app運行在前臺時,一種是你的app運行在後臺或關閉時。
9.png

10.png

8、特別注意

1、想要保證firebase能夠正常集成到app中,就需要保證你的手機一定要有google play service,並且版本要高於sdk的版本或者相同。這個可以到Google商店裏去下載安裝。

2、在第7項展示的代碼中僅包含了app處於前臺時的推送消息的處理,關於後臺消息的處理,可以參考: https://firebase.google.com/docs/notifications/android/console-device

3、如果你需要點擊推送後跳轉到特定界面,你可以在消息負載notification中添加一個click_action字段(需要在服務器端進行設置)。然後將其映射至你想啓動的 Activity 中的 Intent 過濾器。例如,將 click_action 設爲 OPEN_ACTIVITY_1 會觸發類似於如下的 Intent 過濾器:

<intent-filter>
    <action android:name="OPEN_ACTIVITY_1" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

有關服務器端推送消息語法可以參考下面鏈接中的表1:

https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support

4、如果想要在後臺消息中顯示應用圖標,而不是使用默認顯示,這同樣需要在服務器端的消息負載notification中添加一個icon字段和color字段,同時,還需要在app的manifest文件中指明圖標:

<meta-data
     android:name="com.google.firebase.messaging.default_notification_icon"
     android:resource="@drawable/ic_alpha_logo"
....

5、當然,最最重要的一點,你的手機已經科學上網,科學上網,科學上網!