我們知道,在iOS系統中,當用戶正在前臺操作一個app時,app可以有很多種方式告訴用戶一些信息。
然而,任何時候都只有一個app在前臺運行,其他大部分的app都處于在后臺運行或已關閉的狀態,并不在前臺運行。
那么,當這些不在前臺運行的app,在本地或互聯網上發生了一些用戶感興趣的事情,比如說淘寶app-訂單狀態改變,需要通知客戶訂單發貨了,提醒事項app-到達用戶設置的提醒時間了,需通知用戶。
此時,該如何告訴用戶這些信息呢?
iOS通知機制就是為了解決這個問題:即使app不在前臺運行,iOS通知機制也能告知用戶,app在本地或互聯網上,發生了一些他感興趣的信息。
簡單來說,iOS通知機制主要分兩種:本地通知和推送通知。本地工具類app以本地通知為主,互聯網app以遠程通知為主。
作為產品經理,了解一下通知的基本原理,有利于更好的與開發交流(例如避免提出一些無法實現的需求),更好的利用通知機制(例如制定一些運營相關的通知策略)
一、iOS通知機制的基本概念
我們先簡單介紹一下iOS通知的基本概念
iOS通知分類
iOS通知分本地通知和推送通知,其展現形式是一樣的(Banner、Alert、Badge、Sound),其主要區別在于通知發起方是app本身還是app提供商服務器-蘋果APNs,是否需要聯網。
注意,某些文章把通知分成本地推送通知和遠程推送通知,是翻譯上的問題,蘋果開發文檔中明確寫了 Local notifications and remote notifications are the two types of user notifications. (Remote notifications are also known as push notifications.)。
推送在這里特制服務器Push信息的操作,實在要寫成本地推送通知和遠程推送通知,也最好是本地發送通知,遠程發送通知(蘋果開發文檔中反復提到一個詞 send、deliver ,應該理解成發送,而不是推送)
通知的常用展示形式:
Banner(橫幅)是屏幕上一個小的、半透明的view,展示幾秒鐘后會自動消失。除了通知信息外,Banner還會展示小版本的icon,這樣用戶看一眼就知道哪個app發送了通知。
Alert(彈窗)是屏幕上一個標準的警告窗,需要用戶與之交互才能解除(會打斷用戶當前的操作)。
- 關于Alert的按鈕:可能有一個或兩個按鈕。有兩個按鈕時,關閉按鈕會放在左邊,操作按鈕(action button)會放在右邊。如果只有一個按鈕,默認顯示為OK。
- 關于Alert的標題與內容:一般標題是APP的名字,所有內容信息居中。一個完美的內容信息應該是聚焦內容而不是用戶操作,盡量簡短,一到二行即可,首字母要大寫。
Badge(徽標/標記)是應用icon右上角的紅色圓形小標記,用以展示未處理的通知項目。app無權定制徽標的顏色和尺寸。
- 它有兩種形式,一是在主屏APP圖標的右上角顯示,二是在APP內部某些模塊的圖標右上角顯示。圖標小繃帶適用于對信息的數量敏感且不太關注信息的時效性。
Sound(聲音)是一種很好的信息提醒方式,在嘈雜的環境中能立馬吸引用戶的注意力,一般結合Badge和Alert使用,建議重要的提醒使用聲音,避免干擾用戶;定義管理好聲音的沖突。
具體的應用案例
1、本地通知:app處于后臺或已關閉時,顯示通知
例如某個游戲app 7天沒有打開,提示你打開app2、本地通知:無論app處于何種狀態,都顯示通知
提醒事項app,到達設定的提醒時間,以橫幅及其他方式通知
- 3、推送通知:app在前臺運行著,不顯示推送通知,只在后臺或已關閉狀態時才顯示通知
QQ在前臺運行時不顯示通知;已經退出到后臺或已經關閉,收到一條未讀信息
- 4、推送通知:無論app處于何種狀態,都顯示推送通知
今日頭條在前臺運行或后臺或已關閉時,如果服務器上要推送要聞,手機都能顯示要聞推送(只是有時是用橫幅的方式,有時是用彈窗)
二、本地通知和推送通知
兩者的區別
iOS推送通知工作流程
Provider是指某個iPhone軟件的Push服務器,APNS是Apple Push Notification Service的縮寫,是蘋果的服務器。
上圖可以分為三個階段:
第一階段:應用服務提供商從服務器端把要發送的消息和設備令牌(device token)發送給蘋果的消息推送服務器APNs。
第二階段:APNs根據設備令牌在已注冊的設備(iPhone、iPad、iTouch、mac等)查找對應的設備,將消息發送給相應的設備。
第三階段:客戶端設備接將接收到的消息傳遞給相應的應用程序,應用程序根據用戶設置彈出通知消息。
三、擴展閱讀
- 1、極光推送
- 2、如何構建APP消息通知策略
四、參考資料
- 1、蘋果開發文檔 -About Local and Remote Notifications
- 2、蘋果開發文檔 -Local and Remote Notifications in Depth
- 3、蘋果開發文檔翻譯- ios本地和遠程推送通知編程指南
- 4、iOS 7人機交互指南-iOS技術-Notification Center
- 5、博客園-iOS開發系列--通知與消息機制
如有錯誤,歡迎指正