在对《Android Design》进行翻译时发现:Android系统已经提出了一些关于通知消息的设计建议,故在此分享给大家。
一、何时使用通知?
通知主要用于对时间敏感(Time Sensitive)的事件,尤其是涉及他人(Involve another person)的同步事件。例如下面的Gtalk和日历发出的通知就是时间敏感,且与人相关的事件。
那么什么时候又不应该使用通知呢?官方的建议是:
不直接针对用户的,或不紧急的信息。例如SNS中与用户没有直接关系的新鲜事。Path可能就犯了这个错误。
正显示在当前屏幕的信息也不必创建一个通知。即正在聊天的时候,就不必再创建关于聊天消息的通知了。
系统可以自己完成而无需用户操作的简单动作,例如保存、同步或者是更新应用程序等。
如果发生错误了,但是应用程序可以快速自我恢复,此时也不必用通知去打断用户,甚至都可以不用让用户知道这个错误。
对于用户不能手动启动或停止的服务,也不必使用通知。
不要为了让用户对你的品牌记忆深刻而创建多余的通知,否则只会让用户反感。想让用户对你的应用程序保持注意力并且提供少量内容的最好方式是提供小部件(widget)给用户,让用户可以将它放到首页。
二、通知的设计指南
1. 使其私有化
其他用户发过来的通知应该在通知里包含用户的头像(Icon/Photo),还要显示通知的标题(Title)、消息内容(Message)、时间戳(Timestamp),以及应用程序的图标(Secondary Icon)。
2. 合并同类通知
如果一个应用程序发出了多个相同类型的通知,而且这些通知都还没被处理的话(被处理的通知会被移出通知抽屉),那么请将相同类型的通知合并为一个。
合并后的通知会有一个总结性的描述,并且能让用户知道一共合并了多少条通知(Number Pending)。
3. 对时间敏感事件的时间戳
默认的系统通知会在通知右上角打上时间戳,如果你认为显示时间戳对你的通知是没有意义的,那你可能就要重新考虑是否值得为这条消息创建一条通知了。如果这条通知确实足够重要,再决定是否不显示时间戳。
常见的需要显示时间戳的通知是通讯通知,如Email、短信、聊天消息这种,用户需要通过时间戳来理解消息的上下文。
4. 通知相关的导航机制
如果用户点击了一条通知,此时应该将相关的应用程序打开到可以对通知中提到的内容进行操作的状态。但如果用户点击了一个合并的通知,应该去到列表页面(内容页的上一层级),后面第三部分会详细阐述。
5. 自我清理
有些通知会在某个时间点出现告知用户一些相关的信息和提示,但是如果过了那个时间点,这个通知可能对用户来说就不重要了,此时就应该考虑自动删除这条通知。
同样的,用户查看过的聊天消息或邮件,也应该让用户不必手动操作就移除这些通知。
6. 为通知提供预览
提供一段简短的文本作为通知的预览可以让用户大致了解通知的内容,从而帮助用户决定是否立刻查看该通知。
7. 让用户决定是否显示通知
用户可能对频繁出现的通知感到厌烦,所以应该让用户决定是否显示通知。因此,在应用程序的设置中应该让用户可以取消通知。
8. 使用不同的图标
为了让用户在通知栏看一眼就能知道是哪个应用程序发出的通知,应该采用有自己特色的图标。所以在设计应用程序的图标的时候,应该注意与其他Android应用的通知图标有比较明显的区别。
但需要注意的是不要用颜色来区分,因为通知图标通常都是黑白的。
三、通知的导航机制
1. 单条通知与合并通知
如果用户点击了一条通知,此时应该将相关的应用程序打开到可以对通知中提到的内容进行操作的状态。例如用户收到一封新邮件的通知,用户点开该通知后应该去到这封邮件的内容页。
因为同类通知会被合并,如果用户点击了一个合并的通知,应该去到列表页面(内容页的上一层级)。在下面的例子中,用户点开一条合并的新邮件通知后,进入了收件箱界面。
2. 间接通知
如果应用程序需要同时展示多个事件的信息,可以使用一条通知将用户指引到一个中间界面。这个界面会展示这些事件,并为用户提供进入应用程序的入口。这种类型的通知被称为间接通知。
例如一个用户在Gmail中收到了Calendar发出的一条间接通知。点击这条通知后打开一个中间界面(calendar interstitial),这个界面下显示了几个事件的提醒,在这个界面点“返回”键会回到Gmail,但是如果用户点击了某个事件提醒,就会离开这个中间界面并打开Calendar应用程序以显示这个事件的详细内容。在这个事件的详细内容的界面下,点“向上”和“返回”都会去到Calendar应用的首页。
在间接通知的中间界面点“返回”会回到触发该通知的界面,返回路径中不会被插入其他界面。一旦用户通过中间界面进入了应用程序,“向上”和“返回”的逻辑就与标准通知一样了:在应用程序之间进行导航,而不会返回到中间界面。
关于间接通知的详细内容请查看百度MUX翻译的《Android Design》的模式Patterns—-导航Navigation章节。