淺析手機(jī)消息推送設(shè)計

0 評論 9108 瀏覽 17 收藏 8 分鐘

消息是提醒用戶有更新的內(nèi)容,可能短信、郵件、好友申請和日程安排。消息的作用在于主動提醒用戶,不需要主動刷新程序或者網(wǎng)頁去檢查更新,比如Android的sina微博,必須手動刷新程序才能更新微博或者查看好友申請。這種做法可以節(jié)省流量,對于手機(jī)包月用戶而言非常有必要的。用戶專注于當(dāng)前任務(wù)時,可以接收到其他應(yīng)用程序推送的消息,用戶可以及時處理多任務(wù)。

推送機(jī)制

最基礎(chǔ)的方法是程序?qū)崟r聯(lián)網(wǎng)獲取消息,但是程序會占用內(nèi)存,頻繁聯(lián)網(wǎng)耗費電量,程序各自鏈接自有服務(wù)器還會占用很多進(jìn)程。以輪詢(poll)的方式實現(xiàn)時需要程序不定地詢問服務(wù)器是否有更新,推送(push)的好處在于有消息時由服務(wù)器告知手機(jī)客戶端,手機(jī)此時再發(fā)起更新,省電省流量,所以智能手機(jī)平臺都會有推送服務(wù)。

apns

iPhone自3.0之后推出消息推送機(jī)制,原理是消息由服務(wù)器統(tǒng)一處理:

  1. 應(yīng)用服務(wù)器Provider將消息和目標(biāo)發(fā)送給APNs
  2. APNs查找目標(biāo)iPhone并發(fā)送消息
  3. iPhone將消息傳遞給應(yīng)用程序,再彈出Push通知

APNs和iPhone保持15分鐘的心跳式長連接,維護(hù)手機(jī)和服務(wù)器的聯(lián)系正常,否則手機(jī)會不停發(fā)起連接,直到連接到服務(wù)器為止。程序不必實時開啟和主動檢查更新,當(dāng)收到APNs消息時,iPhone會彈出對話框Push消息并伴隨著聲音,用戶可以選擇“view”或者“close”。即使用戶當(dāng)前處在離線狀態(tài),用戶收到消息之后激活程序,再通過程序鏈接應(yīng)用服務(wù)器下載郵件或者錄音。

mspush

WP7的也有相應(yīng)的推送服務(wù),無論程序是否開啟都可以界面頂部推送Toast Notification,并顯示10秒。WP7的Push Client負(fù)責(zé)于服務(wù)器交互,接受到消息時再傳送給相應(yīng)的應(yīng)用程序,而不需要應(yīng)用程序各自維護(hù)一個進(jìn)程。如果程序被釘在首頁,服務(wù)器推送瓦片通知(Tile Notification),改變瓦片的背景圖片、數(shù)字和標(biāo)題屬性。而彈出框式的原生推送(Raw Notification)只能應(yīng)用在程序開啟時,容許實時更新界面。

除了iPhone的長連接心跳查詢,PushMail的IMAP可以支持IDLE特性,郵件客戶端登錄連接服務(wù)器后不會主動檢查更新,而是停留在空閑狀態(tài),當(dāng)服務(wù)器接收到新郵件再通知郵件客戶端,此時客戶端會再查詢收郵件。或者依靠短信觸發(fā),以看不見的短信方式觸發(fā)程序發(fā)起更新,但是短信方式的實現(xiàn)成本較高。(非技術(shù)人員,相關(guān)技術(shù)描述可能有誤)

推送形式

iPhone的消息彈出框如果點擊“view”會影響當(dāng)前操作,但是如果點擊“close”就再也查看不到消息。由于彈出框形式的限制,沒法像Android狀態(tài)欄那樣同時顯示多條消息。分散在各個屏幕的badge難以管理,多數(shù)badge并沒有實際意義,比如花了很長時間更新可能發(fā)現(xiàn)某個應(yīng)用程序只是改了個程序名稱。

no2

iPhone的消息缺乏統(tǒng)一的管理,雖然比Android容易推送消息,但在終端沒有將消息聚合起來統(tǒng)一管理,所以有設(shè)計師對其加以改進(jìn),設(shè)計了Notifications App。解鎖界面顯示消息,滑動某條消息可以立即查看具體內(nèi)容。對現(xiàn)有iPhone的界面操作的基礎(chǔ)上加以利用了解鎖界面。

no2

雙擊Home鍵可以從底部調(diào)出消息,而越獄APP Notified Pro和Android一樣利用狀態(tài)欄,兩者目的都是為了全局操作。考慮到很多游戲會覆蓋狀態(tài)欄,Notifications的方式較好,同時對用戶現(xiàn)有操作系統(tǒng)影響較小。進(jìn)入該程序中可以對所有消息統(tǒng)一編輯或者清除。

之所以需要統(tǒng)一管理的另外一個原因在于程序越來越多,消息也越多,個別應(yīng)用程序為了吸引用戶注意力,會頻繁推送消息,導(dǎo)致消息泛濫和影響用戶對重要消息的關(guān)注程度。

終端推送設(shè)計

除了要了解OS對消息的處理機(jī)制和展現(xiàn)形式,消息自身的眾多屬性可以在設(shè)計中加以利用,比如消息的元數(shù)據(jù)、狀態(tài)、優(yōu)先級和同步方式等等。

時效性強的短信、微博私信和郵件處理的優(yōu)先級更高,可以優(yōu)先顯示在解鎖界面。好友申請、系統(tǒng)消息和好友評論等優(yōu)先級稍低,只以數(shù)字提醒并且不帶聲音,甚至只能在程序開啟時提醒。未來情景式消息推送會在手機(jī)端發(fā)揮作用,優(yōu)先級會依照信息對用戶的有效性有所提升,比如到了某了商店附近觸發(fā)折扣信息的推送。

服務(wù)器在推送消息時,如果可以附帶更多樣的處理方式、比如查看完整的140字微博、回復(fù)、忽略、已讀和拒絕,不進(jìn)入其他程序(如Facebook和短消息)就能操作會提高處理的效率,正如MIUI在主頁收到短信時可以立即回復(fù)。

程序應(yīng)該智能識別處理狀態(tài),比如已讀帶處理的消息標(biāo)記為badge不再重復(fù)聲音提醒,好友申請可以分為同意、拒絕和忽略,對于在各種手機(jī)端被用戶忽略的消息可以設(shè)定為垃圾消息。

多臺設(shè)備的消息可以同步處理,如iPhone端的消息未讀,切換到PC端時,查閱了更新的內(nèi)容之后,iPhone端的消息可以取消推送。

未來的消息推送很有可能會向WP7那樣往集成化的方向發(fā)展,其重要性將越來越高。

參考資料:

  • Apple Push Notification Service
  • Android Push Applications
  • Windows Phone 7 Push Notification
  • BlackBerry Push APIs
  • An early look at DroidPush API
  • iPhone的Push(推送通知)功能原理淺析
  • http://iosnotifications.wordpress.com/
  • 互聯(lián)網(wǎng)架構(gòu)設(shè)計中的poll和push
  • 偷窺iPhone Push Notification的幕后
  • notifications?概念設(shè)計
  • 關(guān)于Pushmail那些事兒

來源:http://daichuanqing.com

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!