离线下载
PDF版 ePub版

极客学院团队出品 · 更新于 2018-11-28 11:00:43

通知

通知为人们提供即时的重要信息和功能。人们能在多种情况下收到通知,例如在锁屏界面中,或者在使用应用时,或者访问通知中心时。

通知中心有两种视图:通知(Notifications )和最近(Today)。

最近视图显示了一个可编辑部件列表。最近窗口部件是一个应用扩展,它显示了少量及时和重要的信息或功能,这些信息或功能则是由用户所关注的应用所提供。举例来说,日历窗口部件只显示了当天的事件。点击其中的一个事件可以唤起日历应用,去打开该事件,用户接下来便可以在日历应用中编辑该事件或管理其他的事件。

通知视图会显示那些用户感兴趣的应用所发出的最新通知。用户可以访问设置(Settings)中相应应用的部分来设置是否要在通知中心显示该应用的通知。

当用户感兴趣的事件发生时,iOS 应用可以通过通知让用户知道,例如:

  • 收到一条消息
  • 事件即将发生
  • 有新的数据可下载了
  • 某些状态发生了变化

在 iOS 8 及以上的版本中,应用可以定义用户在通知中的操作。例如,用户可以在待办事项应用的通知中就标记某事项已完成,而无需再打开应用。

iOS 定义了两种类型的通知。

  • 本地通知(local notification)由应用安排待发送,最终通过iOS发送到同一设备中,而不用考虑该应用当前是否正在前台运行。例如,日历或待办事项应用可以安排一条本地通知来提醒人们一个即将到来的会议或者某个到期日。
  • 远程通知(remote notification)(也称为推送通知(push notification))是由应用的远程服务器发送给苹果推送通知服务(),然后这类通知会被推送到所有安装了该应用的设备上。例如,一款在线竞技类的游戏,即一种用户可以在其中和远程玩家竞赛的游戏,可以更新所有玩家的最新状态。

注意:应用扩展可能会要求远程通知发送到它的容器应用中。在这种情况下,容器应用常常会在后台运行来处理通知。想要了解更多关于应用扩展的内容,请参见应用扩展

如果当你的应用正在前台运行时收到了本地或远程的通知,你就应该以你的应用所特有的方式将信息传达给你的用户。

为了确保用户能够自定义他们的通知体验,你应该尽可能多地支持以下的通知类型:

  • 横条(Banner)
  • 警告框(Alert)
  • 小气泡(Badge)
  • 声音(Sound)

注意:在 iOS 8 及之后的版本中,你必须对所有你想发送给用户的通知类型进行注册。当你第一次进行注册操作时,用户会收到到一个警告,他们可以在其中操作决定接受或拒绝所有来自你应用的通知。无论用户这时的选择是什么,他们应始终能访问你应用的设置来更改此项偏好,或者设置他们想要接收的通知类型。

横条(banner)是一个小而透明的视图,会出现在屏幕顶部并在几秒后消失。用户还可以在锁屏中以及通知中心的通知视图中,看到相应形式的横条。在横条中,iOS 会显示通知的内容和应用的小图标(欲了解更多关于小图标的内容,请参见 应用图标)。用户点击横条来解除它并切换到发送该通知的应用。

除了默认的点击动作之外,当用户轻扫横条时,你还可以定义两个动作按钮。点击通知动作按钮来隐藏横条的显示并启动你的应用(可能是在后台)来执行动作。

通知提示框( alert )是显示在屏幕上的标准提示框视图,需要与用户交互后才会隐藏。当用户点击Options按钮后,你需要提供并显示通知消息和一个默认动作,或最多四个特定动作。提示框的背景样式不能做修改。

当用户点击提示框中的一个默认或自定义动作按钮,与此同时 iOS 会解除提示框并运行你的应用(可能是在后台)。点击关闭或确定按钮会在不用打开应用的情况下解除提示框。

小气泡( badge )是一个显示未读通知数量的红色小圆(小气泡显示在应用图标的右上角)。小气泡的大小和颜色不能做修改。

横幅、警告框和小气泡这三种通知都可以使用自定义或系统提供的声音。

在通知中谨慎使用清除性的操作。要确保用户了解足够的上下文背景,以避免发生他们意想不到的后果。为了帮助用户区分你所定义的清除动作,iOS会用红色来显示它。一些情况下,在应用执行清除操作之前,应该请求用户进行确认。举个例子,如果你在锁屏的横条(banner)中提供了一个清除操作,那么就应确保只有设备的主人才能执行该操作(你需要在代码上实现这一需求)。

为每个动作按钮提供自定义标题。创建一个简短的标题来描述清楚将要发生的动作。例如,游戏可能会使用“Play”作为标题来表明,点击这个按钮会打开应用来进行游戏。确保标题:

  • 使用标题样式的大小写(title-style capitalization)
  • 足够简短,能不被截断地显示在按钮内(也应确保测试各种语言文字的标题显示正常)

不要为同一个事件重复发送通知。用户可以选择处理通知项;通知项在用户未处理前会一直显示。如果为同一事件重复发送通知,这将会导致通知中心充满通知,而用户有可能会因此关闭你应用的通知。

不要在通知消息中包含你的应用名称。自定义信息会在提示框和横条中显示,也会在通知中心中以通知的形式显示。你无需在自定义信息中显示你的应用名称,因为iOS会在显示信息的同时自动显示应用名称。

为了使本地或远程通知信息更有作用,你应该:

  • 专注于信息而不是用户的行为。避免告诉人们点击哪个按钮或如何打开你的应用。
  • 足够简短,一两行就可以显示完整。较长的信息对于用户来说很难进行快速阅读,也会造成在警告框中需要滚动才能查看完整。 使用句式大小写( sentence-style capitalization ),并配以合适的结束语句符号。如果可以,尽量使用一个整句。

注意:在必要的情况下,iOS 会缩短你的消息以便能在各种通知发送样式下显示;为了最好的效果,你不应主动缩减你的消息。

保持气泡内容总是最新。在用户已经处理了新消息时,如何及时的更新气泡就显得尤为重要,这样才不会让用户以为又有额外的新消息到达。注意,当小气泡内容设置为 0 时,也会导致通知中心中相应的通知项被移除。

重要:不要将小气泡用作通知以外的其他用途。记住,用户能够关闭应用的小气泡,这时你将无法确定他们是否看到了小气泡中的内容。

当收到通知时,提供用户可以选择听到的音效。当人们没有在看屏幕的时候,可以通过音效获取他们的注意。例如,日历应用可能会在显示提示框的同时播放一个音效来提醒人们一个即将到来的事件。再如,协作任务管理应用可能会在小气泡更新时播放一个音效来告知某个远程协同的同事已经完成了某个任务。

你可以提供自定义的音效,或者使用内置的提示音。如果你创建了自定义音效,请确保它是简短的、有特色的并且是经由专业制作的。注意到,当通知交付时,你无法通过编程实现设备振动,因为用户才具有设置提示到达时是否振动的权限。

上一篇: 应用拓展 下一篇: 多任务处理