IOS 推播功能解釋
之前在上一篇,完成了 Ios 與 firebase 的推播設定,這篇來稍微解釋一下,設定這些的目的。
IOS 的推播,主要可以分成三個部分,Provider( firebase) 、Devise( IPhone )跟 APNS ( Apple所提供的連線服務)。Provider 必須透過APNS與 Devise溝通,不會直接與Devise 接觸。每當 IPhone 在有網路的環境的時候,會自動與 APNS 建立連結,以備隨時接收訊息。
然後,我們所上傳的憑證就是為了讓Provider與APNS 建立連結。Provider 在發送訊息時,除了我們需要我們所上傳的 SSL TLS 憑證外,還需要有 Devise token,所以每次 app 被啟動的時候,會自動將 Devise token 傳送給我們的 Provider( 這步驟的設定,在之後串接推播訊息時再多做解釋),如此一來,Provider 就可以順利的將訊息傳送給有下載此App 的裝置了。
(附圖為官網所提供的推播訊息流程,與得到Devise token 的流程)
接著,Provider 傳送給APNS的訊息我們稱作 Payload,Payload 使用的是JSON格式,可以傳的內容包含了 Badge、Sound與 文字內容等等(詳見)。
( Badge數目,需在payload裡設定,這意味著我們必須在訊息發送前,就先將每Devise的Badge的數字寫入,所以我們必須在Server 記住每個Devise的Badge 數量)
基本上,IOS 不允許 App 在開啟前執行任何app 有關的內容,那些顯示的推播內容,都是作業系統去執行的不是我們所寫的app,所以我們無法在App 未被執行的時候,去變更傳送的推播內容與Badge 數量。