当应用程序不处于前台运行中时,消息通知能将某些信息及时告知用户。比如收到新消息、收到新邮件、程序下载已完成或者待办事项即将开始等。目前各移动平台上对消息通知的设计均有所差别,各有利弊。这里整理了iOS、Android、Palm Web OS、Windows Phone和未揭开面纱的Meego这五个系统对消息通知的处理方式,并分析了它们各自的优缺点。希望能对研发过程中的设计选择有所帮助。另外这里主要分析的是通知的提示形式,不涉及Local和Push两种通知逻辑。
iOS Notification
iOS的消息通知有两种形式,Badge Notification和Alert Notification。
Badge Notification是指出现在应用程序图标右上角的红色圆形数字提醒,用于提醒一些无需即时处理的消息,比如程序更新数、未读邮件数等。Badge Notification只有在Home Screen的对应屏上才能看到,因此不适合用于提醒一些重要性高或需要及时处理的通知。而且Badge Notification的形状颜色大小等都是默认且无法改变的。
Alert Notification则非常直接地以对话窗口的形式出现在屏幕上,用于重要或需要及时处理的通知。不过Alert Notification常常粗暴地打断正在进行中的任务,强迫用户马上做出选择,且无法汇总查看所有通知,当有多条通知时,无法选择性处理,只能按提供提供的顺序一个个处理。
Android Notification
Android的消息通知有三种形式,Toast Notification、Status Bar Notification和Dialog Notification。
Toast Notification是指出现在屏幕上的暂时性通知,这种通知用于传达一些告知类型的消息,短暂停留后会自动消失,无需用户交互。比如告知下载已完成等。(Toast Noification这个说法最早是源于一个前MSN员工的提法,因为MSN的消息提醒是从底部向上轻弹,形式上很像一个面包从烤面包机中弹起的样子,所以称之为Toast Noification。)
Status Bar Notification是指以一个图标或者滚动条文本的形式出现在系统顶部状态栏上的通知。当应用程序处于后台运行状态时,这种方式比较合适。这种通知形式的好处是既能即使被关注到,又无需打断当前任务,可以从顶部下拉查看通知摘并做选择性处理。
Dialog Notification类似于iOS的Alert Notification,以对话窗口的形式出现在屏幕上,用于重要或需及时处理的通知。
Palm Web OS Notification
Palm Web OS的消息通知有两种形式,Banner Notification和Pop-Up Notification。
当有通知时,Palm会在界面底部会出现一条通知栏,用于承载通知。出现在这条通知栏上的便叫做Banner Notification。个人觉得Palm的Banner Notification是对消息通知的一个较完美的处理方式。首先它不论在Home还是App程序界面均可以关注到,不会打搅和中断正在进行的任务;其次这个通知栏可在点击后扩展,以摘要(Dashboard Summary)的方式展示通知;另外和Android相比将通知栏独立于状态栏可以让通知更加清晰醒目(Android状态栏上密布的状态信息和通知信息有时会让人较麻木,毕竟较要从一堆状态图标中辨认出其中的通知图标,也是需要耗费认知成本的)。
Pop-Up Notification和Alert Notification(iOS)、Dialog Notification(Android)类似,不同点是其出现的方式是从屏幕底部向上挤出,而不是出现在屏幕中央。
Windows Phone Notification
Windows Phone的消息通知有三种形式,Tile Notification、Toast Notification和Raw Notification。
WP7的主屏上铺满的应用程序比较比较像一块块方形的瓷砖,顾名思义Tile Notification正是出现在这些“瓷砖”上的通知,比如主屏上天气app上显示的温度发生变化时出现的通知。可以通过改变瓷砖上的三个元素(title、backgroud和提示数)来达到提醒的目的,与iOS的Badge Notification相比,除了数字提醒外,还多了改变tile背景和title两种方式。
Toast Notification上文已经做过说明,只是WP7中Toast Notification出现的位置是在屏幕顶部,与屏幕等宽,停留约10秒后自动消失。