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

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

谷歌的权限请求的图像并排翻译IOS和Android。许可请求询问用户允许谷歌翻译访问麦克风以启用侦探。
谷歌翻译需要访问麦克风以使用听写功能;iOS(左)和Android(右)权限请求略有不同。

如何在移动操作系统上呈现这些请求的略有差异。从上面的示例中可以看出,在iOS中,要求用户访问麦克风,而在Android中则要求用户录制录制音频的权限。此外,在iOS中,模态对话框包含所谓的目标字符串,描述该应用程序请求访问的原因。Android中不存在此类信息。由Android设计人员来确保在模态对话框出现之前引入请求背后的理由

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

应用许可请求的设计仍然很糟糕,尽管IOS和Android开发区相当广泛的指导。一个原因可以是许可请求通常不被视为UX设计的一部分,因为许可本身的UI组件由操作系统决定。UX设计人员和应用程序开发人员也可能很难理解为什么权限请求非常重要。毕竟,谁不想能够访问每个资源,这样他们就可以使用所有优秀的功能?

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

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

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

3设计注意事项

3设计考虑因素极大地影响了许可要求的质量。这些是:

1.权限请求副本

2.时机

3.决定逆转

1.Permission-Request副本

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

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

当用户读取权限请求时,他们执行隐式的成本效益分析。他们问自己从授予这一许可以及他们相信应用程序的信任程度,他们将获得多少效益。设计师必须写出可理解的文案,特别是在传达出于意外的权限请求的基本原理时,以免警报用户并帮助他们理解为什么该应用需要访问其设备上的资源。

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

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

写入侧重于用户福利的请求。不要只是提及依赖权限的功能;根据这些功能为您的用户提供的要求框架。此信息使用户可以轻松理解请求并接受它。

例子:

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

好:Skyscanner希望访问您的位置,以便您可以快速选择您附近的出发机场。

例子:

好:允许Snapchat访问您的相机以获取照片。

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

太多的Android应用程序忽略了对许可请求和用户福利的解释(而他们的iOS版本提供完全良好的解释)。为Android设计的UX团队应该考虑在权限请求出现之前提供额外的屏幕来传达目的;否则,无法看到同意被正确了解情况。

在Android上的生产力应用程序的GIF。该应用程序中的屏幕表示“永远不会忘记回电。任何事情都可以提醒您回电。永远不要让一个重要的电话溜走。如果用户选择”允许“按钮,则显示两个Android权限请求要求访问联系人并为应用程序管理和拨打电话。
Any.Do,Android Productivity应用程序,在启动时提供了一个界面,解释了允许访问用户联系人的好处:提醒返回电话。当用户选择允许,触发通常的Android权限请求。如果没有这个初始屏幕,单独的权限请求将为Android用户出乎意料并且可能令人担忧,因为用户可能会想知道为什么生产力应用程序需要访问其联系人。但是,它可能在第一次启动应用之后立即介绍该功能可能不合适,因为我稍后会讨论。

写作建议:

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

2.许可要求的时间

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

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

反过来,系统启动的请求,它被编程为在特定时间请求权限,通常需要额外的背景.系统启动请求的示例是用户第一次打开应用程序,并与询问对当前位置的访问的对话框进行问候。由于系统启动的请求可以随时被编程出现,因此它们会在用户对用户的瞬间发生更多的潜力。

来自iOS中Google地图的权限请求的图像。在用户选择目标后,将出现权限消息,并即将开始导航。权限请求读取:Google地图希望访问Apple Music,Music和Video Actions以及您的媒体库。
iOS的Google地图:当用户即将点击时,将出现一个意外的系统启动请求访问媒体库开始导航到当地的旅馆。用户想知道谷歌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/