Firebase系列(四) - Notifications
主題 |
Firebase系列(四) - Notifications |
介紹 |
Firebase提供的Notifications服務可以讓開發人員可以很快速實做出發送訊息到各個iOS與Android行動裝置上,並且還提供主控台網頁,可以在網頁上發送訊息,讓管理人員或是行銷人員可以輕輕鬆鬆發送訊息。 Notifications服務可以指定何時發送訊息,並可以針對特定目標族群、單一裝置或全部使用者發送不同的訊息,進行有效的推廣行銷廣告。 |
作者 |
姜志民 |
版本 |
1.0 |
產出日期 |
2016 / 09/ 13 |
1 目的
Firebase提供的Notifications服務可以讓開發人員可以很快速實做出發送訊息到各個iOS與Android行動裝置上,並且還提供主控台網頁,可以在網頁上發送訊息,讓管理人員或是行銷人員可以輕輕鬆鬆發送訊息。
Notifications服務可以指定何時發送訊息,並可以針對特定目標族群、單一裝置或全部使用者發送不同的訊息,進行有效的推廣行銷廣告。
2 firebase官網建立專案與設定
在https://firebase.google.com/ 官網登入帳號並進入「前往控制台」。
按「CREATE NEW PROJECT」。
輸入Project name與Country/region,後按「CREATE PROJECT」。
按「Add Firebase to your Android app」。
只需要輸入Package name後,按「ADD APP」。
此時瀏覽器會自動下載google-services.json檔案,然後照畫面上的指示,將檔案放在app目錄底下,在按「CONTINUE」。
照畫面上的指示在各個build.grale檔案內加入字串。
在Notifications/app/build.gradle檔案內,加入compile 'com.google.firebase:firebase-core:9.4.0'、compile 'com.google.firebase:firebase-messaging:9.4.0'與apply plugin: 'com.google.gms.google-services'字串。
在Notifications/build.gradle檔案內,加入classpath 'com.google.gms:google-service:3.0.0'字串。
按下圖的icon進行Sync動作。
3 Service程式
新增一個Service元件,並繼承FirebaseMessagingService,這個主要是要接收從Firebase發送的訊息。App在Foreground跟Background時候,其訊息的呈現位置與處理的方式也不同,差異如下:
App state |
Notification |
Foreground |
系統收到訊息後,會自動呼叫onMessageReceived方法。必須在onMessageReceived內,自己實作訊息的呈現。 |
Background |
系統收到訊息後,訊息自動呈現在訊息通知列中。 |
後續的實際操作中,會說明Foreground與Background的訊息方式。底下的程式碼是實做當App在Foreground時,會以Toast方式與在Android Monitor呈現訊息內容。
4 AndroidManifest.xml
在AndroidManifest.xml加入<intent-filter>內的字串。
<service
android:name=".FirebaseMessaging ">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
5 測試步驟 – 實體機
※建議使用實體機。
a. 進入firebase控制台,按「Notifications」。
b. 在Message text內輸入欲發送訊息內容,而Delivery date可以設定發送時間 。
c. 可以依照App、Audience、Version、Language條件,針對特定組群進行發送訊息。
d. 成功發送訊息之後,在Android Studio的Android Monitor中,可以看到從Firebase發送出來的訊息。
e. 下圖是App在Foreground時的訊息呈現,這是在之前在onMessageReceived實作以Toast呈現。
f. 下圖是App在Background時的訊息呈現。