訊息是提醒使用者有更新的內容,可能簡訊、郵件、好友申請和排程。訊息的作用在於主動提醒使用者,不需要主動重新整理程式或者網頁去檢查更新,比如 Android的新浪微博,必須手動重新整理程式才能更新微博或者查看好友申請。這種做法可以節省流量,對於移動終端裝置包月使用者而言非常有必要的。使用者專註於當前任務時,可以接收到其他應用程式推送的訊息,使用者可以及時處理多任務。
推送機制
最基礎的方法是程式即時連網擷取訊息,但是程式會佔用記憶體,頻繁連網耗費電量,程式各自連結自有伺服器還會佔用很多進程。以輪詢(poll)的方式 實現時需要程式不定地詢問伺服器是否有更新,推送(push)的好處在於有訊息時由伺服器告知移動終端裝置用戶端,移動終端裝置此時再發起更新,省電省流 量,所以智能移動終端裝置平台都會有推送服務。
iPhone自3.0之後推出訊息推送機制,原理是訊息由伺服器統一處理:
◆應用伺服器Provider將訊息和目標發送給APNs
◆APNs尋找目標iPhone並發送訊息
◆iPhone將訊息傳遞給應用程式,再彈出Push通知
APNs和iPhone保持15分鐘的心跳式長串連,維護移動終端裝置和伺服器的聯絡正常,否則移動終端裝置會不停發起串連,直到串連到伺服器為 止。程式不必即時開啟和主動檢查更新,當收到APNs訊息時,iPhone會彈出對話方塊Push訊息並伴隨著聲音,使用者可以選擇“view”或者 “close”。即使使用者當前處在離線狀態,使用者收到訊息之後啟用程式,再通過程式連結應用伺服器下載郵件或者錄音。
WP7的也有相應的推送服務,無論程式是否開啟都可以介面頂部推送Toast Notification,並顯示10秒。WP7的Push Client負責於伺服器互動,接受到訊息時再傳送給相應的應用程式,而不需要應用程式各自維護一個進程。如果程式被釘在首頁,伺服器推送瓦片通知 (Tile Notification),改變瓦片的背景圖片、數字和標題屬性。而彈出框式的原生推送(Raw Notification)只能應用在程式開啟時,容許即時更新介面。
除了iPhone的長串連心跳查詢,PushMail的IMAP可以支援IDLE特性,郵件用戶端登入串連伺服器後不會主動檢查更新,而是停留在空 閑狀態,當伺服器接收到新郵件再通知訊息用戶端,此時用戶端會再查詢收郵件。或者依靠簡訊觸發,以看不見的簡訊方式觸發程式發起更新,但是簡訊方式的實現 成本較高。(非技術人員,相關技術描述可能有誤)
推送形式
iPhone的訊息彈出框如果點擊“view”會影響當前操作,但是如果點擊“close”就再也查看不到訊息。由於彈出框形式的限制,沒法像 Android狀態列那樣同時顯示多條訊息。分散在各個螢幕的badge難以管理,多數badge並沒有實際意義,比如花了很長時間更新可能發現某個應用 程式只是改了個程式名稱。
iPhone的訊息缺乏統一的管理,雖然比Android容易推送訊息,但在終端沒有將訊息彙總起來統一管理,所以有設計師對其加以改進,設計了 Notifications App。解鎖介面顯示訊息,滑動某條訊息可以立即查看具體內容。對現有iPhone的介面操作的基礎上加以利用瞭解鎖介面。
雙擊Home鍵可以從底部調出訊息,而越獄APP Notified Pro和Android一樣利用狀態列,兩者目的都是為了全域操作。考慮到很多遊戲會覆蓋狀態列,Notifications的方式較好,同時對使用者現有 作業系統影響較小。進入該程式中可以對所有訊息統一編輯或者清除。
之所以需要統一管理的另外一個原因在於程式越來越多,訊息也越多,個別應用程式為了吸引使用者注意力,會頻繁推送訊息,導致訊息泛濫和影響使用者對重要訊息的關注程度。
終端推送設計
除了要瞭解OS對訊息的處理機制和展現形式,訊息自身的眾多屬性可以在設計中加以利用,比如訊息的中繼資料、狀態、優先順序和同步方式等等。
時效性強的簡訊、微博私信和郵件處理的優先順序更高,可以優先顯示在解鎖介面。好友申請、系統訊息和好友評論等優先順序稍低,只以數字提醒並且不帶聲 音,甚至只能在程式開啟時提醒。未來情景式訊息推送會在移動終端裝置端發揮作用,優先順序會依照資訊對使用者的有效性有所提升,比如到了某了商店附近觸發折扣 資訊的推送。
伺服器在推送訊息時,如果可以附帶更多樣的處理方式、比如查看完整的140字微博、回複、忽略、已讀和拒絕,不進入其他程式(如Facebook和短訊息)就能操作會提高處理的效率,正如MIUI在首頁收到簡訊時可以立即回複。
程式應該智能識別處理狀態,比如已讀帶處理的訊息標記為badge不再重複聲音提醒,好友申請可以分為同意、拒絕和忽略,對於在各種移動終端裝置端被使用者忽略的訊息可以設定為垃圾訊息。
多台裝置的訊息可以同步處理,如iPhone端的訊息未讀,切換到PC端時,查閱了更新的內容之後,iPhone端的訊息可以取消推送。
未來的訊息推送很有可能會向WP7那樣往整合化的方向發展,其重要性將越來越高。