通知
通知可以为用户提供及时和重要的信息,无论设备是处于锁定状态还是使用状态。例如,通知可以在新消息到来、事件将要发生、有新数据可用或状态发生改变时发出消息。
虽然用户希望收到他们关注的事情的通知,但他们并不喜欢总是被通知打断。为了帮助用户管理整体的体验,你需要在发送任何通知之前获得许可;系统允许用户在「设置—通知」中更改其设置,并调整提醒样式、预览和 Siri 交互。用户还可以在「设置—专注模式」中关闭所有通知(某些地区的政府提醒除外)。
相关开发指南,请参考用户通知。
请求允许发送通知的权限
在向用户发送通知之前,需要得到他们的许可。系统提供了一个标准的提醒,其中显示了请求以及应用可以发送的通知的自定义描述。用户还可以在「设置—通知」中查看你提供的描述,并更新他们的选择。
撰写一份简要描述应用可以发送的通知的副本。 标准提醒会在你的应用名称之后以及用户用来授予或拒绝权限的按钮之前显示你的副本(称为「目的字符串」或「使用说明字符串」)。目标是写出一个简单、完整、直截了当、具体且易于理解的句子。使用句式大写,避免被动语态,并在结尾加句号。
如果有必要提供从应用接收通知的好处的相关信息,你可以在系统提醒出现之前显示一个自定义屏幕内容。如果用户拒绝接收来自应用的通知,但随后尝试访问需要他们的功能时,你也可以显示此屏幕内容。
帮助用户管理通知
在 iOS 15 及更高版本中,用户可以通过指定发送时间和设置「专注模式」,对通知行为进行细粒度地调整。发送时间允许用户选择是立即接收通知,还是在他们选择的时间段内发送摘要。「专注模式」可以帮助用户在他们定义的睡眠、工作、阅读或驾驶等活动时间段内过滤通知。
用户可以选择哪些联系人和应用在「专注模式」下也能够发送通知。例如,在「工作专注模式」下,用户可能希望能实时收到来自同事、家庭成员和与工作相关的应用的通知。用户可能还希望在「专注模式」下收到所有的「时效性通知」提醒。「时效性通知」包含用户希望实时获得的重要信息。
重点:即使「专注模式」可能会延迟通知提醒的发送,但通知本身在到达时就应立即可用。
为了支持这些行为的定制化,首先要确定应用可以发送的通知类型。如果应用支持直接通信——比如电话和短信——就使用「通信」通知;对于所有其他类型的任务,可以使用「非通信」通知。为了支持通信通知,可以采用 SiriKit Intents 框架,这意味着用户可以使用 Siri 来定制通知行为;相关开发指南,请参考 INSendMessageIntent 和 UNNotificationContentProviding。
为应用可以发送的每个非通信通知指定系统定义的中断级别。系统使用中断级别来帮助确定何时发出提醒;系统使用发送者来确定何时发送提醒。
系统为非通信通知定义了四个中断级别:
-
被动
用户可以在闲暇时查看的信息,比如餐厅推荐。
-
主动(默认)
用户关注所喜欢的信息何时到达,比如他们最喜欢的队伍的最新比分是多少。
-
时效性
直接影响用户并需要他们立即关注的信息,如帐户安全问题或包裹派送进度。
-
紧急
直接影响用户并需要他们立即关注的有关个人健康和公共安全的紧急信息。紧急通知非常少见,通常来自政府和公共机构或医疗保健服务应用。你必须获得授权才能使用「紧急」中断级别。
每个系统定义的中断级别中的通知提醒的行为方式如下:
中断级别 | 忽略计划发送时间 | 不受「专注模式」限制 | 忽略 铃声/静音 |
---|---|---|---|
被动 | 否 | 否 | 否 |
主动 | 否 | 否 | 否 |
时效性 | 是 | 是 | 否 |
紧急 | 是 | 是 | 是 |
注释:因为紧急通知可以覆盖 响铃/静音 开关,并且不受「专注模式」限制,所以你必须获得发送通知的权限。
-
通过准确地表示每个通知的紧迫性来建立信任
用户有几种方法来调整他们从应用接收通知的方式——包括关闭所有通知——因此,必须尽可能地根据实际情况来分配中断级别。不应该让一个低优先级的信息使用高级别的紧急通知来打断用户。
-
仅对当前相关的通知使用「时效性通知」中断级别
为了帮助用户理解「时效性通知」忽略「专注模式」和计划发送时间的好处,请确保通知是与正在发生的或将在一小时内发生的事件有关的。当你的应用第一次收到「时效性通知」时,系统会描述这样的通知是如何工作的,并允许用户在不需要立即关注信息的情况下关闭它。未来,系统会定期为用户提供更多的机会来评估你的「时效性通知」对他们的影响。相关开发指南,请参考 UNNotificationInterruptionLevel。
-
不要使用「时效性通知」中断级别来发送营销通知
用户可能已经同意从你的应用接收营销通知,但这样的通知应该受限于「专注模式」或计划发送时间的设定。
设计出色的通知体验
提供丰富的、高价值的信息,让用户一目了然。
-
为提供了场景的通知内容创建一个简短的标题
系统会在通知的顶部最显眼的位置显示标题。如果没有为非通信通知提供标题,系统将显示应用的名称;在通信通知中,系统会自动在标题区域显示发送者的姓名。通知标题区的突出位置,使其成为提供有效信息的绝佳区域。例如,非通信通知可能会显示标题、事件名称或电子邮件的主题。如果你只能提供一个通用的标题,比如「新建文档」,那么最好让系统显示你的应用名称。
-
撰写简明扼要、易于阅读的通知内容
使用完整的句子、句子大小写和适当的标点符号,不要截断消息——必要时系统会自动执行此操作。避免在短暂显示的消息中向用户展示过于复杂的内容,例如打开应用,找到指定的页面和按钮,或执行某个难以记住的任务。
-
不要在通知中包含敏感、个人或机密的信息
当用户收到通知时,你无法预测他们会做些什么,因此必须避免包含可能显示在设备屏幕上的任何私人信息。
-
避免为同一事件发送多个通知,即使用户没有为此做出响应
用户会在他们方便的时候注意到这些通知。如果为同一事件发送了多个通知,这样会把通知中心填满,用户可能会为此关闭你应用中的所有通知。
-
当通知预览被隐藏时,提供通用的描述性文字来展示
在「设置」中,用户可以选择隐藏所有应用的通知预览。在这种情况下,系统只会显示应用的图标和默认标题「通知」。为了给用户提供足够的前后语境,让用户知道他们是否需要查看完整的通知,请编写正文,简洁地描述通知内容,而不需要展示太多细节,如「好友请求」、「新评论」、「提醒」或「发货」。相关开发指南,请参考 hiddenPreviewsBodyPlaceholder。
-
不要包含应用的名称或图标
系统会在每个通知的最前面自动显示一个较大的应用图标;在通信通知中,系统会显示发送者的联系图片——或头像——标记着应用小图标的徽标。
-
考虑使用声音来对通知进行补充
声音是一种很好的区分应用通知的方式,可以让用户在不查看屏幕的情况下引起他们的注意。你可以创建一个与应用风格相协调的自定义声音,也可以使用系统提供的提醒声音。如果使用自定义的声音,请确保它是简短的、独特的和专业制作的。通知声音可以增强用户体验,但不要依赖它来传达重要信息,因为用户有时可能会听不到。虽然用户也可以设置提醒声响同时振动,但你不能以编程方式启用这种振动。相关开发指南,请参考 UNNotificationSound。
提供通知操作
通知可以呈现一个可自定义的详细视图,其中最多包含四个按钮,用户可以在不打开应用的情况下执行操作。例如,日历应用的事件通知提供了一个「推迟」按钮,该按钮可以将事件的提醒推迟几分钟。
用户可以通过长按手势打开详情视图来显示通知预览,或者在未锁定的设备上向下滑动。相关开发指南,请参考 处理通知和与通知相关的操作。
-
在通知的场景中提供有意义的高效操作
倾向于让用户在无需打开应用的情况下,执行常见的、节省时间的任务操作。对于每个按钮,使用一个简短的标题大小写术语或短语,清晰地描述操作的结果。不要在标题中包含应用的名称或任何无关信息,保持文字简洁以避免被截断,并在撰写文字时考虑本地化问题。
-
不要提供仅仅打开应用的通知操作
当用户点击一个通知或通知预览时,他们希望应用能直接打开相关的页面,因此显示一个执行相同操作的按钮会使详情视图变得混乱,并造成混淆。
-
避免提供破坏性的操作行为
如果必须提供一个破坏性的操作行动,确保用户有足够的场景来避免意想不到的后果。为具有破坏性的操作行为标识为红色显示。
-
为每个通知动作提供一个简单、易识别的图形
图形强化了动作的含义,帮助用户快速理解它的作用。系统会在动作标题的尾部面显示图形。使用 SF Symbols 时,可以选择现有的表示命令的标志,也可以编辑相关标志来创建自定义的图形。
相关开发指南,请参考图标属性和 UNNotificationAction。
角标
可以为应用图标加上角标,用以显示未读通知的数量。相关开发指南,请参考 applicationIconBadgeNumber。
-
使用角标只能向用户显示有多少未读通知
不要使用角标来表达其他类型的数字信息,例如与天气相关的数据、日期和时间、股票价格或游戏分数。
-
不要使用角标传达重要信息
用户可以关闭应用的角标显示,因此如果你的应用依靠角标来传达重要信息的话,很有可能会让用户错过它们。
-
随时更新角标信息
当用户查看相应信息时,应立即更新应用的角标信息。不要让用户误以为有新信息可用时,却发现他们已经查阅过了。请注意,将角标的数量清零意味着会从「通知中心」移除所有相关通知。
发送营销通知
除非用户明确同意接收此类信息,否则不要使用通知发送营销或促销内容。当用户想要了解与应用相关的新功能、内容或活动时,他们会授予接收营销通知的权限。例如,订阅应用的用户可能希望获得订阅者的相关优惠,而游戏玩家可能希望收到与现场活动相关的特别优惠。
重点:不要将营销通知指定为「时效性通知」。相关指南,请参考帮助用户管理通知。
-
如果要向用户发送促销或营销通知,请获得他们的许可
在将这些通知发送给用户之前,你必须获得他们的明确许可。创建一个提醒、模态视图或其他界面,描述你想发送的信息类型,并提供一个明确的方式来让用户选择加入或退出。
-
确保用户可以在应用中管理他们的通知偏好
除了请求允许发送信息或营销通知外,还必须提供一个应用内设置页面,让用户可以更改他们的选择。相关指南,请参考设置。