什么是许可请求?为什么有许可请求?

在访问用户移动设备上的资源(如照相机、当前位置或麦克风)之前,应用程序必须请求权限。应用程序(通过操作系统)以模态对话框,要求用户授予或拒绝访问。

谷歌翻译在iOS和Android上的权限请求的图片。权限请求请求用户允许谷歌Translate访问麦克风以启用听写。
谷歌翻译需要接入麦克风才能使用听写功能;iOS(左)和Android(右)的权限请求略有不同。

这些请求在不同的移动操作系统中呈现的方式略有不同。正如你从上面的例子中看到的,在iOS中用户被要求访问麦克风,而在Android中用户被要求允许录制音频。此外,在iOS中,模态对话框包含所谓的目标字符串,它描述了应用程序请求访问的原因。这类信息在Android中不存在。Android设计人员需要确保在模态对话框出现之前引入请求背后的基本原理

权限请求为用户提供感知和实际控制他们的个人(和潜在敏感)数据。允许访问的决定可能很重要,因为在用户卸载应用程序或在其设备的权限设置中故意撤销权限之前,应用程序通常会保留对资源的访问权限。因此,用户需要相信应用程序不会恶意访问资源。

应用程序权限请求通常设计得很糟糕,尽管iOS和Android开发社区提供了大量指导。一个原因可能是权限请求通常不被认为是UX设计的一部分,因为权限本身的UI组件是由操作系统决定的。用户体验设计师和应用程序开发人员可能也很难理解为什么许可请求如此重要。毕竟,谁不想访问每个资源,以便使用所有优秀的功能呢?

然而应用程序权限请求有助于整体用户体验,并应遵循与其他功能相同的可用性原则。他们应该:

  • 易于使用和理解
  • 符合用户的心智模型
  • 促进真正、知情的选择
  • 经得起监管机构的审查

当权限请求设计得很好时,它们看起来是合理的、非侵入性的;用户在处理这些问题时几乎不会三思而后行。另一方面当权限请求设计不当时,用户通常会感到不舒服、困惑和恼怒. 他们甚至可以考虑卸载应用程序,并寻找竞争者,特别是如果应用程序的品牌不强,功能不提供巨大的效用。

3设计考虑

设计上的考虑在很大程度上影响许可请求的质量。这些都是:

1.Permission-request副本

2.时机

3.决策逆转

1.权限请求副本

最佳许可请求传达请求背后的理由。在一项针对15个移动应用程序的研究中,Tan和他的同事发现,用户确实是授予许可的可能性增加12%当他们被告知请求的原因时请求。这一估计来自随机显示或删除每个请求中包含的目的字符串(由其供应商设计),即使解释相当糟糕。

更有趣的是,研究人员还在他们创建的一个聚会规划应用程序中测试了一系列要求访问联系人的不同原因。这里,最令人信服的原因(让Party Planner使用你的联系人来自动完成电子邮件地址)结果是81%的提升与最不引人注目的理由相比(派对策划人想要访问您的地址簿,显示您最便宜的景点,您的联系人的位置和其他目的)。我们之前说过很多次,UX拷贝驱动决策制定.请求的措辞几乎使接受率翻倍,这一点也不奇怪,因为文字是用户体验中最重要的元素之一

当用户读取权限请求时,他们执行隐式成本效益分析。他们会问自己,通过授予这个许可,他们将获得多少好处,以及他们对应用程序允许其访问的信任程度。设计师必须写出易懂的副本,特别是在传达意外许可请求的理由时,这样就不会提醒用户,并帮助他们理解为什么应用程序需要访问他们设备上的资源。

为了帮助用户做出明智的选择:

来自Instagram的iOS权限请求的图像显示:“Instagram”希望访问您的照片。这样,您可以共享库中的照片,并将照片保存到您的相机卷中。
Instagram清楚地表明了允许应用程序访问用户的图片库的好处:用户可以与他人分享照片,并在本地保存在应用程序中编辑的照片。
美联航移动应用程序的iOS许可请求图片。许可内容为:美联航想要访问您的相机。使用相机和照片扫描各种旅行证件和付款选项。
在联合航空iOS应用程序中,目的字符串更像占位符文本,而不是信息性描述。它使应用程序看起来笨拙,并引起怀疑。(词语的大小写)旅行付款此外,该解释并没有向用户传达允许访问的好处。例如,虽然扫描旅行证件是一项功能,但实际的好处是,如果用户扫描护照,他们就不必手动输入详细信息。

写着眼于用户利益的请求。不要只提到依赖于许可的功能;根据这些功能对用户的作用来设计你的需求。这些信息便于用户理解和接受请求。

例子:

好 啊:Skyscanner想要访问您的位置以进行个性化的航班搜索。

更好:Skyscanner想要访问您的位置,以便您可以快速选择离您较近的机场。

例子:

好 啊:允许Snapchat进入你的相机拍照。

更好:允许你的相机使用Snapchat,这样你就可以在应用程序中拍下照片,并与朋友分享。

太多的Android应用忽视了对许可请求和用户利益的解释(而他们的iOS版本提供了完美的解释)。为Android设计的UX团队应该考虑在许可请求出现之前提供额外的屏幕来传达目的。;否则,同意不能被视为被适当地告知。

Android上一个工作应用的gif动图。应用程序的屏幕上写着“永远不要忘记回电话。”任何。可以提醒你回电话。永远不要让重要的电话溜走。如果用户选择“允许”按钮,就会出现两个Android许可请求,要求访问联系人,并要求应用程序管理和打电话。
任何。do是一款安卓办公应用,在启动后会提供一个介绍页面,解释允许访问用户联系人的好处:提醒用户回电话。当用户选择允许,通常的Android权限请求会被触发。如果没有这个初始屏幕,单是许可请求就会让Android用户感到意外,并可能会发出警报,因为用户可能会想,为什么一个办公应用程序需要访问他们的联系人。然而,在应用首次发布后立即引入这一功能可能并不合适,我稍后将对此进行讨论。

写作建议:

  • 写的主动语态
  • 使用平实的语言你的用户能够理解。
  • 解释为什么应用程序需要访问并传达给用户好处。一般来说,一个好的许可请求内容公式是这样的:想要访问您的[资源]这样你就可以[好处/任务]。
  • 避免含糊短语提供更好的用户体验在解释为什么应用程序需要访问时。(用户对含糊不清的承诺高度怀疑,经常怀疑这些承诺包含了邪恶的计划。)
  • 对于Android,为意外请求设计其他屏幕,以便在出现权限请求对话框之前将基本原理和好处传达给用户。(如果您是谷歌,请重新设计许可API,以便在发出请求时能够方便地包含解释。)
  • 测试您的权限请求让用户了解他们是否理解了文本。

2.权限请求的时间

权限请求的时机很重要,因为它可能导致用户发现请求正常或警告。

有两种类型的权限请求:上下文相关的和系统启动的。上下文相关的权限请求不太可能引起意外:用户在应用程序中选择一个图标(如摄像头或麦克风符号)或点击地址字段(用于位置),系统将响应权限请求。用户行为的上下文和模式对话框的及时性有助于他们对请求的含义进行推理。

相反,系统进行请求,它被编程在特定时间请求许可,通常需要额外的背景.系统发起请求的一个例子是,当用户第一次打开应用程序时,会出现一个请求访问当前位置的对话框。因为可以将系统发起的请求编程为在任何时候出现,所以它们更有可能出现在用户不合适的时刻。

iOS中谷歌地图的权限请求的图像。当用户选择了目的地并准备开始导航时,权限消息就会出现。权限请求如下:谷歌Maps想要访问Apple Music,您的音乐和视频活动,以及您的媒体库。
谷歌iOS地图:一个意外的系统发起的访问媒体库的请求出现时,用户准备点击开始导航到当地的旅馆。用户想知道谷歌Maps将如何使用该权限(答案是:显示应用程序中当前播放的歌曲的细节)。虽然这个特性可以增强用户体验,但它在错误的时间出现,因为用户很可能以任务为中心,并且可能在开始导航时很匆忙。更好的选择是在用户打开应用时宣传新功能,然后让他们在方便的时候发现这些新功能。
是安卓导航应用Waze的gif动图。一个麦克风按钮被选中,一个权限请求出现:允许Waze录制音频?
Waze for Android:当用户按下红色麦克风按钮时,会出现录音-音频许可请求。这是一个有用的和预期的上下文相关的权限请求的示例。
一个gif显示Android上Viber发出的5个系统启动请求。
当用户在Android设备上安装Viber(一款即时通讯应用)时,他们会收到连续5个系统发起的权限请求,导致严重的请求疲劳。它们用于访问用户的联系人、照片、相机、麦克风和位置。虽然用户可以猜测为什么Viber可能需要访问联系人,但其他请求就不那么直观了。其中一些请求的时机可以改进:例如,当用户试图从手机上传照片或在应用程序中拍照时,应该分别请求访问图片库和相机的权限。

开始时的中断可能会让人不知所措。当用户安装应用程序时,会形成第一印象。请求所有权限(就像Viber在Android上做的那样)就像在不告诉别人的情况下要求捐款任何关于慈善的事。一个更好的做法是,在首次发布时只要求核心权限(应用程序的核心功能所必需的),只有在需要为用户提供额外功能时才要求进一步的权限。

关于权限请求时间安排的建议:

  • 不要一次显示所有的许可请求。当应用程序首次安装时,避免事先要求所有许可。
  • 只要有可能,当用户选择需要该权限的特性时,发起权限请求。这种方法为请求提供了重要的背景信息,让用户有一种控制感,而且用户更有可能理解应用程序为什么需要它,并同意它。
  • 当用户在你的应用程序中完成任务时,不要用无关的系统启动的权限请求来打断他们,因为未经请求的模态对话框会激怒用户他们很快就被解雇了。
  • 在请求非关键权限之前向用户提供值。

3.权限的决策逆转

有时,用户最初拒绝访问某个资源,后来又想推翻他们的决定。例如,他们可能会拒绝访问短信应用程序的电话联系人,但后来意识到手动添加联系人太困难,可能希望改变最初的决定。

当用户试图访问依赖被拒绝权限的功能时,不报告错误,清楚地解释为什么不能使用该功能,并使他们能够轻松地授予访问权限.有时候用户并不会将权限和功能联系在一起,所以提供这种信息可以帮助用户形成正确的应用运行模式。

其次提供到他们可以在其中切换权限,以确保用户不会在权限设置中迷失方向。

当iOS的Venmo应用程序没有权限访问摄像头时,该应用程序的屏幕图像。文字上写着:没有摄像头。要扫描代码并为您的个人资料拍照,请允许我们在设置>隐私>相机中使用您的相机。打开设置。
Venmo for iOS是一款用于向朋友发送和接收金钱的现金应用程序,在用户拒绝访问其相机的权限后,它会向用户显示此屏幕。该文本传达现有的访问状态,并提供一个链接,指向设备设置中的确切位置,用户可以在该位置打开或关闭权限。这里唯一可以改进的就是制作打开设置链接看起来更像一个链接,因为它很容易被误认为是简单的文本。

设计决策逆转的提示:

  • 当用户试图访问应用程序中需要许可的功能时,要清楚地说明该功能不可用的原因。
  • 提供一个链接,指向设备设置中的确切位置,在那里他们可以撤销自己的决定。

避免深色图案

自从GDPR的实施需要欧盟公民明确同意后,一些应用程序开发者已经开始实施黑暗的模式促使用户同意他们的许可请求。在某些情况下,应用程序开发人员试图将权限请求作为信息性对话(如下面的微信示例)。当用户处于任务流程中时,这些请求经常会弹出。有时候设计师故意让用户难以拒绝请求。虽然这些不道德的策略可能成功地让更多用户接受许可请求,但它们在道德和法律上都是可疑的。此外,他们侵蚀信任可能会影响用户忠诚度随时间变化

iOS上微信中显示的权限请求。权限请求是:“查找微信好友”。微信将把你的通讯录上传到它的服务器上,帮助你找出哪些手机联系人正在使用微信。您上传的数据仅用于匹配联系人,不会保存用于其他目的”。用户可以选择“确定”或“了解更多”“OK”标记为“推荐”。
这个来自微信的通知使用了一个暗模式来将权限请求伪装成信息性对话。的好啊按钮标签推荐,并且没有直接拒绝请求的选项。如果用户想拒绝访问联系人,他们必须支付更高的费用交互成本因为他们需要选择了解更多在美国,更多的暗模式让人们很难找到拒绝请求的方法。

避免使用深色图案。为用户提供足够的信息,让他们自己做出选择。尊重他们的决定。请记住,您始终可以支持用户稍后撤销其决定。

总结

应用许可请求允许用户继续控制他们的数据。用户在决定是否接受权限请求时需要进行成本效益分析。设计师必须考虑如何传达好处,以及何时提出请求,这样用户才不会生气或惊慌,并感到一切尽在掌握。最后,设计师应该避免暗模式,而是为用户提供公平的选择,让他们能够在以后改变自己的决定。

想了解更多关于手机通知和相关主题的信息,请阅读我们的报告移动应用程序和网站的用户体验

引用:

Tan,J.,Nguyen,K.,Theodorides,M.,Negrón-Arroyo,H.,Thompson,C.,Egelman,S.和Wagner,D.(2014)。开发者指定的许可请求解释对智能手机用户行为的影响. 在里面第32届ACM计算系统人为因素年会会议记录——CHI'14(加拿大安大略省多伦多,2014年),91-100。

Android开发者指南:https://material.io/design/platform-guidance/android-permissions.html

iOS开发者指南:https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/requesting-permission/