Google在2016年I/O大會上,宣佈了全新的Firebase,Google推送服務也停止更新,全面集成到FireBase中。下面簡要介紹下Android端firebase推送的使用:
理所當然,你需要學習科學上網。
官網地址: https://firebase.google.com/
沒有的可以在官網進行免費註冊,註冊步驟這裏就不贅述了。
如圖所示:起一個項目名地區可以選擇美國等有google服務的地區
如下圖所示:創建一個你準備使用推送功能的Android應用
這裏,需要獲取到SHA1,詳細說下SHA1的獲取步驟:
(1) 這裏使用的是JRE中的keytool,首先,在JRE安裝文件夾bin目錄下找到keytool.exe,以管理員模式運行。
(2) 打開windows的cmd.exe,鍵入
注意:路徑要根據自己的.android文件夾的位置進行調整
(3) 默認的Android Studio的keystore的密令是android
(4) 鍵入密令後獲得SHA1
點擊之後會自動下載一個名稱爲google-services.json的文件,這個是和應用關聯的配置文件。這個文件要放置到模塊的根目錄下:
首先,在項目的build.gradle文件添加一條規則,以包含Google服務插件:
然後,在app(或需要使用的模塊中)的build.gradle文件中,在底部添加 apply plugin 行,以啓動Gradle插件,同時還應該爲自己需要實用的功能添加依賴,如下圖中,添加了firebase的Analytics框架。如果是要使用推送功能,應該添加
compile ‘com.google.firebase:firebase-messaging:9.6.1’ (注意:此版本可能不是最新,建議查看官方)
AppFireBaseInstanceIDService是用來獲取設備token上傳給你自己的服務器的,服務器拿着token去給FireBase的平臺傳送需要推的消息。 AppFirebaMessagingService是用來處理前臺消息的。這裏特別說明下,谷歌推送將推送消息分爲兩種:一種是你的app運行在前臺時,一種是你的app運行在後臺或關閉時。
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、當然,最最重要的一點,你的手機已經科學上網,科學上網,科學上網!