目前市場上的消息推送方式有兩種:通知和透傳。
什么是透傳?透傳即是透明傳送,即傳送網絡無論傳輸業務如何,只負責將需要傳送的業務傳送到目的節點,同時保證傳輸的質量即可,而不對傳輸的業務進行處理。透傳消息,就是消息體格式及內容,對於傳遞的通道來說是不去過問的,通道只負責消息的傳遞,對消息不做任何處理,當客戶端接收到透傳消息后,由客戶端自己來決定如何處理消息。正是因為透傳消息可以自定義消息體,也可以自定義消息的展示方式及后續動作處理,所以彌補了通知欄消息的一些不足之處(通知欄消息是直接展示出來,相關的動作客戶端無法捕獲到)。
透傳消息主要有如下幾個方面的特點:
1. 后台處理,用戶無感知。
2. 前台展示,提醒用戶。
3. 展示的多樣化。
整個透傳消息的流程如下:根據個推提供的API接口或在個推開發者平台上推送透傳消息,個推服務端接收到推送的消息后,不做任何處理,直接發送給目標用戶。當客戶端SDK接收到透傳消息后,以廣播方式發送給客戶端,客戶端在配置的第三方BroadReceiver里接收到透傳消息后進行處理。
透傳消息的消息體,可以根據不同的需求傳遞不同的參數或格式。如傳遞一個簡單的字符串,或傳遞一個Json字符串,里面根據需求傳遞需要的字段。
用戶無感知的透傳,如:更新相關信息,在主界面中相關欄位用紅點標識進行弱提醒,推送一條命令用來檢測用戶是否有登錄等。通知欄消息雖然方便的提醒用戶,但也在一定程度上給用戶帶來了打擾,用戶無感知的消息推送有時效果會更好。
用戶有感知的透傳:把透傳消息處理成通知欄展示出來,提醒用戶方便點擊查看相關信息(如個人帳單信息),直接打開應用或跳轉到指定的應用界面中(根據透傳消息的相關參數來判斷跳轉到哪一個指定的界面,相關參數傳遞要打開的界面的類名或Intent即可)等。對於開發者,處理成通知欄的相關事件也是可以捕獲的,如通知欄的展示、點擊等事件都可以進行捕獲,以方便進行后續的操作。
因透傳消息可以自己處理成通知欄內容展示,所以通知欄的樣式也可以根據需求來做對應的改變。在Android 4.4及以上的系統,通知欄可以是樣式豐富的通知欄,放入圖片和視頻等;可以展示普通的通知,也可以展示多樣化的通知。