1. 客戶端注冊
**應用安裝后,客戶端(例如Android或iOS設備)會向Firebase Cloud Messaging(FCM)發送注冊請求。
2. 獲取FCM令牌
**FCM返回一個唯一的注冊令牌(Registration Token),這個令牌用于標識設備。
3. 服務器存儲令牌
**服務器同時也會將該令牌存入數據庫,以便后續推送消息。
4. 服務器發送消息
**當需要推送時,服務器會調用FCM的API并指定目標設備的令牌。
**推送消息包括兩種:
/通知消息(Notification Message):用于顯示推送通知。
/數據消息(Data Message):用于應用內部處理,不會自動顯示通知。
5. FCM服務器處理消息
**FCM會檢查設備的狀態(在線/離線)并進行消息分發。
/如果設備在線,消息會被立即傳輸。
/如果設備離線,消息會暫時存儲在FCM服務器,等設備上線后再推送(最多存儲28天)。
6. 設備接收消息
**設備同樣會根據運行狀態處理消息。
/如果應用在運行,應用可以直接接收數據消息并處理,例如更新UI或存儲數據。
/如果應用在后臺/被關閉:
---通知消息:會自動顯示在系統通知欄。
---數據消息時:系統可能不會直接交給應用,具體行為取決于平臺和系統版本。
1. 設備注冊
**應用啟動時,向iOS系統請求推送權限。
**用戶同意后,iOS會向APNs請求一個設備令牌(Device Token)。
2. 獲取設備令牌
**iOS系統將Token返回給應用,設備令牌同樣也是每個設備的唯一標識,用于接收推送消息。
3. 服務器存儲令牌
**應用將設備令牌發送到開發者服務器并存儲,以便后續推送。
4. 服務器向APNs發送推送請求
**開發者服務器使用APNs的API(HTTP/2或舊版binary協議)發送推送消息。
**推送請求包括:
//設備令牌
//消息內容
//優先級
//有效期
5. APNs處理并分發消息
**APNs檢查設備狀態(在線/離線)。
--如果設備在線:立即發送推送。
--如果設備離線:暫時緩存推送(具體時長由Apple決定)。
--如果設備Token失效:APNs會通知開發者,表示用戶可能卸載了應用。
6. 設備接收推送
**應用在前臺:消息交給應用處理,不會自動顯示通知。
**應用在后臺/鎖屏:iOS自動顯示推送通知。
文章為作者獨立觀點,不代表DLZ123立場。如有侵權,請聯系我們。( 版權為作者所有,如需轉載,請聯系作者 )

網站運營至今,離不開小伙伴們的支持。 為了給小伙伴們提供一個互相交流的平臺和資源的對接,特地開通了獨立站交流群。
群里有不少運營大神,不時會分享一些運營技巧,更有一些資源收藏愛好者不時分享一些優質的學習資料。
現在可以掃碼進群,備注【加群】。 ( 群完全免費,不廣告不賣課!)