在今天的移動應用市場,應用推送消息是與用戶進行全天候溝通的一種重要途徑。無論是新聞提醒、廣告活動、好友邀請還是其他重要的應用事件,實時通知用戶是增加用戶活躍度和留存率的重要手段。然而,在傳統的推送消息技術中,如長連接、輪詢和單播等方法,都存在消息推送不及時、不準確、不穩定等一系列問題,這些問題都導致了用戶體驗下降和推送效果不佳。FCM(Firebase Cloud Messaging) 是 Google 提供的一款全新推送服務,能夠將消息及時、準確、可靠地推送給用戶的設備,成為現代應用推送的不二之選。
一、FCM推送的流程
FCM推送是一種基於 HTTP 和 XMPP 協議的非同步應用通信方式。FCM包含以下三種主要的部分:
- FCM伺服器:負責發送和維護移動應用的推送消息,並且存儲這些消息。
- 移動應用:需要添加 FCM SDK,以便設備可以將自己註冊到 FCM 伺服器並與之建立通信。
- 客戶端(Web應用):可以想要向移動應用推送消息的任何 Web 應用。
以下是 FCM 推送的流程:
- FCM KIT 組件:FCM SDK 負責處理應用程序中與 FCM 相關的操作,例如設備到 FCM 伺服器的註冊、收到新消息並處理等。
- 移動設備:將自己註冊到 FCM 伺服器。
- FCM 伺服器:將設備註冊到 FCM 伺服器的信息和 ID 存儲在 FCM 資料庫中,並將設備的註冊 ID 發送回移動設備。
- 移動設備:將該設備的註冊 ID 發送到應用伺服器(Web 應用)上。
- 應用伺服器:發送消息到 FCM 伺服器。
- FCM 伺服器:向具有該註冊 ID 的移動設備的應用程序發送推送消息。
- 移動設備:通過 FCM SDK 接收和處理消息。
通過上述流程,FCM推送成功地將消息發送到了指定的設備。
二、FCM推送的具體實現
1.使用 Firebase 來創建 FCM 項目
要使用 Firebase FCM 消息傳遞,首先需要創建一個 FCM 項目。前往 Firebase 控制面板並創建一個 Firebase 項目。在 Firebase 控制面板中添加一個新應用並完成您的設置,以便在 Firebase 控制面板中創建可以使用的項目證書。
2.添加 Firebase FCM SDK 依賴
將以下依賴項添加到應用級別的 build.gradle 文件中,在項目中啟用 Firebase FCM SDK:
dependencies {
implementation 'com.google.firebase:firebase-messaging:20.2.4'
}
3.註冊 BroadcastReceiver 來處理未讀消息
對於 Android 應用程序,消息傳遞是通過在 Android 操作系統中註冊使用 BroadcastReceiver 來實現的。使用以下代碼創建 NotificationBroadcasterReceiver 廣播接收器,以及在 AndroidManifest.xml 文件中添加以下代碼來聲明廣播接收器:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="YOUR_PACKAGE_NAME">
<receiver
android:name=".services.NotificationBroadcasterReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</receiver>
</manifest>
4.在應用中啟用 FCM
下面是在 Application 類中啟用 Firebase SDK 的代碼。在這個例子中,我們是通過將其添加到 AndroidManifest.xml 文件中來實現的。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="YOUR_PACKAGE_NAME">
<application
android:name=".SampleApplication"
...
<!-- Add this line -->
android:usesCleartextTraffic="true">
</application>
</manifest>
以下為啟用 FCM 的 Java 代碼實現:
public class SampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
if (BuildConfig.DEBUG) {
FlutterMain.startInitialization(this);
}
FirebaseMessaging.getInstance().setAutoInitEnabled(true);
}
}
三、FCM推送的優勢
1.支持多平台、多個應用
FCM 支持向多個應用程序推送非同步消息。因此,如果有多個 Web 應用需要使用同一設備的推送消息服務,可以使用 FCM 實現。此外,即使要推送消息的應用不同,您仍然可以使用同一個 FCM 項目來實現推送消息的編碼。
2.更好的消息分發率
FCM使用優化的多路發現演算法,準確識別了丟失的消息和重複的消息,並儘可能優化消息的投放效率,從而確保了消息的高即時性和實時性。
3.能夠 customization 個性化定製
FCM 允許自定義推送消息的內容、類型或樣式,讓開發者和業務可以根據不同的應用場景提供不同的提醒方式,提高用戶粘性和留存率。
總而言之,FCM 推送服務為用戶提供了更加快速、準確、穩定的消息推送服務,從而大大提高了移動應用的用戶體驗和使用效果。
原創文章,作者:GMLYH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/331009.html