什么是权限请求,为什么会有权限请求?

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

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

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

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

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

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

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

当许可请求设计得很好时,它们看起来是合理的和非侵入性的;用户在处理这些问题时几乎不会三思。另一方面,当许可请求设计得很糟糕时,用户通常会感到不舒服、困惑和恼怒.他们甚至可能会考虑卸载该应用,转向竞争对手,特别是如果该应用的品牌不强大,功能不能提供很大的实用性。

3设计注意事项

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

1.Permission-request副本

2.时机

3.决定逆转

1.Permission-Request副本

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

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

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

为协助使用者作出明智的选择:

一张来自Instagram的iOS许可请求图片,上面写着:“Instagram”想要访问你的照片。这可以让你分享照片库中的照片,并将照片保存到相机卷中。
Instagram清楚地表明了允许应用程序访问用户的图片库的好处:用户可以与他人分享照片,并在本地保存在应用程序中编辑的照片。
美联航移动应用程序的iOS许可请求图片。许可内容为:美联航想要访问您的相机。使用相机和照片扫描各种旅行证件和付款选项。
在United Airlines的iOS应用程序中,目的字符串读起来更像是占位符文本,而不是信息描述。这使得应用程序看起来笨拙,并引起怀疑。(单词的大写旅行付款而且看起来很随意,还会让人觉得你不专业。)此外,这种解释并没有告诉用户允许访问的好处。例如,虽然扫描旅行文件是一项功能,但实际的好处可能是,如果用户扫描护照,他们就不需要手动输入详细信息。

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

例子:

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

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

例子:

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

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

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

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

写作建议:

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

2.权限请求的时间

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

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

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

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

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

权限请求定时建议:

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

3.权限的决策逆转

有时,用户最初拒绝访问资源,后来想要改变他们的决定。例如,他们可能会拒绝使用短信应用程序的手机联系人,但后来意识到手动添加联系人太费劲,可能希望改变最初的决定。

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

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

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

设计决策逆转的技巧:

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

避免黑暗模式

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

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

避免使用深色图案。给你的用户足够的信息来做出他们自己的选择。尊重他们的决定。请记住,您总是可以支持用户稍后更改他们的决定。

总结

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

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

引用:

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/