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

網(wǎng)站運(yùn)營(yíng)至今,離不開(kāi)小伙伴們的支持。 為了給小伙伴們提供一個(gè)互相交流的平臺(tái)和資源的對(duì)接,特地開(kāi)通了獨(dú)立站交流群。
群里有不少運(yùn)營(yíng)大神,不時(shí)會(huì)分享一些運(yùn)營(yíng)技巧,更有一些資源收藏愛(ài)好者不時(shí)分享一些優(yōu)質(zhì)的學(xué)習(xí)資料。
現(xiàn)在可以掃碼進(jìn)群,備注【加群】。 ( 群完全免費(fèi),不廣告不賣(mài)課!)