APP授权设计:如何让用户不反感并同意授权

36 评论 46586 浏览 319 收藏 28 分钟

授权机制,是手机操作系统安全机制中的一部分,在开发应用时需要用到各种各样的手机系统权限。那在我们的APP中,它的授权该如何设计,才能让用户同意授权,或者不反感授权呢?

本文大纲图:

一、认识授权

1.1 什么是授权

授权机制,是手机操作系统安全机制中的一部分,在开发应用时需要用到各种各样的手机系统权限。

一般来说,在操作系统中权限会被分类,有些权限级别较低,应用只需在开发时声明即可使用;而与用户有关的权限级别都非常高,需要用户亲自授权才可以。

我们的产品中的功能经常会涉及到这些权限,为了能使应用正常使用,从而给用户带来更好的体验,我们希望用户都能授予我们相关权限。

1.2 需要用户授权的权限有哪些

iOS需要用户授权的权限有下面两种:

①涉及到用户隐私的权限:

②系统服务权限:

  1. 无线网络与蜂窝数据(iOS10以后加入,中国大陆特有的权限)
  2. 通知权限
  3. VPN
  4. 键盘

……

两种权限的区别:

涉及到用户隐私的授权弹窗中,可以添加简短的自定义的向用户解释说明的语句;而系统服务权限弹窗不可以添加说明,有系统的固定提示语。

注意:

  1. iOS应用需要使用iCloud服务时,如果用户已经在iPhone上登录了iCloud,则不需要用户授权可以直接使用。
  2. 使用TouchID,FaceID也不需要用户授权,可以直接在应用中开启。

Android中需要用户授权的权限:

Android6.0后有普通权限和危险权限之分,需要用户授权的权限是危险权限。危险权限共有9个权限组,每个权限组又包括若干子项,在授权时只要用户对一个权限组的任意一个子项授权,则整个权限组都被视为授权。

9个权限组分别为:日历、相机、通讯录、定位、麦克风(用于录音)、电话(一般用于读取本机识别码)、传感器SMS(短信)、存储。

iOS与Android权限的区别:

在iOS和Android中对不同的权限需不需要用户授权,划分不一样。

比如:iOS中最常见的通知权限和网络权限,都需要用户授权才能使用;而这两项权限在Android中则不需要用户授权,所以Android手机总是有很多弹窗,还有相册权限在Android中,也是不需要授权的。

具体两者有何区别,可以结合上面给出的图自行对照,总的对比下来感觉iOS对于用户的保护是更到位的。

要注意的是:像我们刚才所说的网络访问和通知权限,并没有在Android列表中列出,但这不代表Android中没有这两个权限,只是不需要用户授权而已。

知道了iOS和Android的权限区别后,我们在设计时就知道同一项权限,需不需要针对两个系统分别做设计了。

1.3 常用授权

  • 第一梯队:网络,通知,位置;
  • 第二梯队:通讯录,相册,相机,麦克风等。

Android和iOS的常用授权都一样,只不过Android不需要网络和通知权限,不需要授权相册。

1.4 iOS和Android在设计授权时的区别

(1)在Android中所有的系统授权弹窗,都是不能添加说明的;而在iOS中涉及到用户隐私的权限,在请求授权时都可以添加简单的说明。

看似区别不大,但是对于用户的体验来说,iOS显然更胜一筹。

(2)Android的系统授权框可以出现多次,第一次用户进入应用后,如果没有授权给应用的话,那么下次当用户再次进入应用时,应用还可以调用系统授权框,让用户授权。

在iOS中系统授权框自始至终只会出现一次,如果用户点击不允许授权,则以后只能通过给用户提供去设置按钮,让用户自行打开权限开关。

使用系统授权框让用户授权的好处:

通过系统提示框让用户授权,用户只用点击一下就可以授权成功,而通过去设置去开启权限步骤,会需要用户经过两三个步骤才能开启,比较繁琐。

如果没有让用户在第一次授权成功,以后让用户授权成功的可能性更低,所以我们需要珍惜第一次机会,争取让用户一次性授权成功。

虽然Android可以在下次用户进入应用时,再次调用系统授权框,可是如果用户第一次都不给你授权,以后又凭什么给你呢?

所以不管是iOS还是Android,在第一次弹窗出现时,拿到用户的授权都是非常重要的

(3)Android阵营中不同手机厂商的系统,在授权时的机制都不一样。

比如:作为Android系统危险权限的存储权限,在oppo的ColorOS系统中就是向所有应用开放的,不用通过用户的授权,还有弹窗弹出次数的限制等。

在oppo中竟然可以一直给用户弹出授权框,知道授权成功为止,如果进一步为了用户体验的提高,我们可以为不同的手机厂商做定制化处理。

本文中按照适合大部分安卓手机的情况做介绍。

1.5 为什么要让用户给我们授权

我们设计的应用中,往往一些功能需要用户给予相应权限,才能正常运行,这样才能为用户正常服务,给用户带来良好的体验。

1.6 用户授权过程中存在的问题

  1. 很多应用,会向用户申请一些与功能关系不大的权限,导致用户对所有软件的信任度很低;
  2. 应用拿到通知权限以后为所欲为,经常向用户发一些广告,没用的信息,骚扰用户;
  3. 应用在向用户申请权限的时候,没有说清楚需要权限做什么用。

这些因素导致了我们真正需要一些权限的时候,用户不再信任我们;导致我们软件中的正常功能获取不到权限,不能为用户提供良好的体验。

二、如何针对授权做设计

第一步:确定应用中需要用到哪些权限

梳理一遍应用中的功能,或者和开发沟通,确定我们都需要哪些系统权限,我们需要做到下面两点:

  1. 确定这些权限确实需要,不去获取多余的权限;
  2. 确定哪些要为iOS设计和哪些要为Android设计,还是都要设计。

第二步:针对每一个权限做下列设计

1. 设定系统弹窗弹出时机

在第一次打开应用时申请权限的劣势:

  • 用户对应用的信任感在一开始是最低的;
  • 一开始缺乏关联场景,用户不知道你要授权干什么。

(1)接下来看看什么样的权限,应该放在第一次打开应用的时候去申请?

1)网络权限(Android不用设计)

在进入时获取网络权限,这没什么好说的,没有网络权限我们什么也搞不了,直接调用系统授权框即可。

2)通知权限(Android不用设计)

这里我的建议就是,对于那些有过硬理由的通讯类应用来说,是可以在一开始请求获取通知权限的;对于没有过硬理由的应用来说,尽量找出那些用户需要用到通知服务的场景,在那时再弹出授权框。

原因:刚才说到了,在一开始去请求授权有两个劣势;但是对于那种有过硬理由的应用来说,不在一开始申请到的话,会对应用有比较大的影响。

而第二个问题对于这种应用来说不用担心,对于没有过硬理由的应用来说,不申请到通知权限也不影响主要功能,所以没必要冒风险在一开始去申请。且等到用户遇到了需要被提醒的场景,再弹出授权框,肯定比一开始没有关联场景去申请要强得多。

3)没有就会影响到正常使用的权限

比如:对于照相类应用,如果在一开始没有拿到相机权限,那么进入应用后就会是黑屏,所以拍照权限就应该放到一开始去获取。

注意:对于这种应用来说,获取相机权限就够了,相册权限也不要放到一开始去获取。

再举个例子:百度云网盘在第一次打开时,也会提示你授予通讯录权限,为什么呢?因为百度云要帮你把通讯录信息同步到网盘中,如果不给权限的话,就没法同步。当然你也可以选择不同步通讯录,所以也会在一开始去向用户申请。

(2)使用到相关功能时

刚才我们已经解决了,哪些功能需要放到第一次打开应用的时候去申请。那么除了这些权限,剩下的就是属于:在用户使用到相关功能的时候再去申请的权限了。

这些权限大部分都和授权场景有比较强的关联性,放在特定的授权场景触发是更好的选择。但这里也不是说,放在后面弹出弹窗的权限,一定都有比较强的场景关联性。

最主要的是:如果你没有过硬的理由放在前面弹出,那就放在后面弹出吧。

对于这类权限,这时候我们需要做一件事——找出需要用到这些权限的所有功能的触发点。

比如:对于相机权限,那么触发场景有可能是拍照,有可能是扫一扫,触发点就是点击拍照按钮的那一刻,点击扫一扫按钮的那一刻,在这些触发点中,都要能出发授权弹窗。

2.是否需要pre-permission

(1)什么是pre-permission

pre-permission简单说就是预授权,在系统授权弹窗出现以前,先弹出我们的自定义弹窗,甚至是页面。我们可以用我们的自定义弹窗,来测试用户是否想给我们授权?

如果用户点击了我们自定义弹窗中的授权按钮,我们再弹出系统授权弹窗,如果用户不想在此时授权,则我们可以在后面合适的情况下,再次让用户给我们授权。

这样相当于加了一层保险,只有当用户想给你授权的时候,才弹出系统授权弹窗,避免了用户点击了系统授权框的不允许后,造成再次授权的成本增高的问题。

(2)pre-permission这种设计方式出现的背景

这个方法出现在iOS早期版本,那时的iOS系统权限管理方面,没有现在这么完善。当用户关闭了系统的授权框后,如果需要再打开相关权限,就只能通过手动去设置页自己开启权限,整个过程需要五六个步骤,大大提高了用户的开启成本。

如果用户在第一次拒绝了应用的授权请求时,如果再想让用户打开相关权限就非常困难。

(3)pre-permission有什么用

现在的iOS系统,在用户拒绝授权后,我们可以在下次出现的自定义弹窗中加入去设置按钮,用户只需要两三步就可以授权成功。

最重要的是:以前用户很容易找不到在哪里去开启权限,而现在我们可以直接将用户引到到授权页,用户点击授权即可。可以说有了去设置这个按钮后,用户再次打开权限的成本大大降低,而pre-permission当初出现的原因,正是为了解决再次打开权限的成本高的问题。

那么是不是说pre-permission这种方式已经过时了呢?

答案当然是:没过时。

首先虽然现在的再次授权成本大大降低,但毕竟还是没有系统授权框的授权体验好。

但是最重要的不是这个,最重要的是:当用户不能很好的理解我们为什么需要授权的时候,我们可以在预授权的提示框中加入详细的说明,从而达到用户给我们授权的目的。

(4)接下来我们看哪些权限需要pre-permission

其实大部分的权限获取,通过系统自带的授权框都能解决问题。

比如:相机、相册、定位等。

这些权限的特点是和授权场景的关联性很强,只需要简单的文字用户就能理解我们需要权限干什么;用户理解后一般就会授予我们权限,如果用户不给我们权限的话,就不能使用相关功能。

比如:他要修图,却不给我们相册权限,之后当用户发现没有权限不能修图后,自然会给我们权限,所以这些权限一般不用担心。

比较特殊的是通知权限和通讯录权限。

我们先来说通知权限。

先说结论:如果通知权限对应用影响很大,一定要加pre-permission。如果通知权限只是给用户提供一种便利,没有也影响不大。比如:淘宝、京东这些,可加可不加。

原因:通知权限几乎是每个应用都想拿到的权限,对于有些应用来说,通知权限是一个很重要的权限。

比如:通讯类软件,消息需要实时的传达给用户,如果没有通知权限,对于应用的影响是非常大的,这类应用比较少。

而对于其他应用来说,通知权限只是为了增加用户体验的一个方式而已,拿到最好,拿不到也无关痛痒。

还有些应用拿到通知权限,就是为了给用户发一些没用的信息,而不考虑用户的感受,这种应用很多,拿不到也就算了。

于是这就造成了一个问题:现在的用户一般都不想给应用通知权限,用户的感觉就是给了通知权限就会被不断的弹窗骚扰,再加上很多应用,都是用户刚一打开应用就让用户授予通知权限。而iOS中的通知框又不能添加说明文字,不能向用户说明应用获取通知权限的目的,所以大部分用户很多时候一看到通知权限就会下意识的不授予。一旦用户不授予通知权限,我们也不能像相机、相册、定位这样的权限一样,通过不让用户使用相关功能的方式,来再次提示用户去打开权限。因为即使没有通知权限,应用一定是可以正常运行的——于是拿到通知权限变成了一件非常难的事。

关键的问题是:有些应用拿不到就拿不到了,而对于有的应用的影响是非常大的,甚至是致命的。这些应用不会去骚扰用户,但是也被用户误解了。

所以对于这种应用来说,就需要一种方式来避免被用户误解,向用户说明需要通知权限去做什么,尽最大可能性拿到通知权限,那么pre-permission也就再次派上了用场。

再来说说通讯录权限。

结论:不管什么应用,在申请通讯录权限时,最好都加上pre-permission

原因:在所有的权限中,哪个权限是用户感觉最涉及隐私的——大部分用户都会认为是通讯录权限。

除非你的应用像微信,QQ这类让用户有足够安全感的应用,否则一般情况下用户都不会随便授予你通讯录权限。现在用户动不动收到诈骗短信,诈骗电话,谁知道是不是你们这种不靠谱的公司泄露出去的。

即使是大公司,现在都不能让用户放心了,最近爆出的Facebook泄露用户个人信息很好的说明了问题。

所以获取通讯录权限也比较难,通讯录权限和通知权限有些地方很像,如果用户决定了不授予你通讯录权限,你之后再想获取到这些权限就比较难。所以对于通讯录权限来说,通过pre-permission的方式来获取也比较好。

对于其他权限的来说,如果你想更加充分的向用户去说明也是可以用的,这里就不再多说。

(5)在Android中怎么设计

Android中的弹窗都不能添加说明文字,是不是就应该都添加pre-permission呢?

实际上不是。

首先在之前我们说到过,Android中的系统授权框可以不止一次的弹出来(下次进入应用时),所以用户再次授权成本更低。

其次,大部分的授权我们也提到过,像:相机、相册、定位这种,用户已经被各种应用教育的非常好了,基本都会给你权限,不给的话相关功能也用不了。

所以实际上在Android中和iOS中情况差不多,主要针对通知和通讯录权限来使用pre-permission,但是Android中通知权限不用通过用户授权,所以我们只要在申请通讯录权限的时候加上pre-permission即可。

3.拒绝后怎么办?

(1)pre-permission被拒

添加了pre-permisson也不是万能的,也会被用户拒绝。

而通知和通讯录权限,不像定位,相机权限,可以在用户进入相关页面时提示功能不能用。

若要使用相关功能就得打开权限,对于这种情况我们怎么办呢?

拿通知举例,我们就要在用户需要被提醒的时候,来提醒用户打开通知。如果用户真的需要被通知,那么自然会授予我们权限。

如果是通讯录呢?

那就在添加好友的时候提醒,要注意的是这种提示不是用弹窗的方式,这样有骚扰用户的嫌疑。

(2)网络授权框被拒

用户关闭了网络授权后,系统会在下一次用户进入应用时,自动弹出已经关闭网络权限的提示框,应用只需按照断网情况处理即可。

西瓜视频在断网后为用户分析了不同的可能性,并且在检查网络权限这里添加了设置按钮。用户可以很方便的检查网络是否关闭,这样的设计可以说是非常棒了,大多数的应用在断网后的设计都没有这么细致。

(3)系统授权框被拒

在用户拒绝我们后,立即提示用户若要使用相关功能就得打开相关权限,并且在该权限的每个触发点都加入弹窗提示,同时给用户一个去设置的按钮。这里要注意的是,用户点击去设置后,要直接将用户送到应用的授权界面,不要让用户去找。

提示的方式有两种:有弹窗提示、也有整页提示。

如果你需要授权的功能,不需要占用整个页面就用弹窗提示,如果该功能需要占用整个页面,那么就用整页提示。

4. 提示文案

首先,iOS中网络授权框和通知授权框中的文字是固定的,不能自定义。

(1)pre-permission中的文案

由于pre-permission的优势,我们可以充分的向用户说明:

  1. 结合图片文字的方式说清楚我们要获取这个权限做什么用?
  2. 如果你不给我们权限会怎样?
  3. 打消用户的疑虑,如果是通讯录权限就说明白我们不会侵犯你的隐私,您可以随时关闭该权限;如果是通知权限就说明白我们不会骚扰你,前面给出的VUE的预授权弹窗中,就专门强调了不会打扰用户,这点很好。

(2)第一次iOS系统授权提示框出现时的文案

说明白,如果不给我们权限你将不能使用什么功能,个人认为“你不能做什么”这种方式要比“我要为你做什么更好”。

(3)被拒绝后提示框中的文案

您还尚未开启某权限,所以不能使用该功能,请开启权限。

总结

这篇文章写得比较长,希望的是大家看完后不光知道怎么去设计App授权,更知道为什么这么设计,这样当遇到不同的情景的时候才能灵活处理。

最后我们以一个例子来收尾

假设我们的应用是一款小视频类软件。

第一步:找出所有应用中用到的权限,分为iOS需要的授权和Android需要的授权

  • 针对iOS:要用到的权限有网络、通知、相机、相册、麦克风、定位。
  • 针对Android:要用到的权限有相机、相册、麦克风、定位、存储权限。

第二步:针对每一个权限做设计

接下来我们以iOS下的相机权限为例:

1)什么时候弹出?

用户点击录制视频时弹出。

2)要不要pre-permission?

不要,所需权限与场景关联性很强,利用系统提示框中的自定义文字即可。

3)如果用户拒绝了怎么办?

点击拒绝后和下次进入时,利用整页去提示用户,并添加去设置按钮。

文案:(简单示范,大家可以写的更好一点)

  • 第一次请求用户授权时:如果不授予相机权限,您将不能拍摄视屏。
  • 拒绝后提示用户时:由于您还未授予相机权限,暂时不能录制视频,请开启权限。

这样一个权限的设计就完成了,可以去绘制原型图了,相册、麦克风、定位权限的设计和相机权限的设计基本雷同,通知权限就当成作业让大家去设计了。

彩蛋:

如果大家觉得我写的还不错的话,希望大家能给我点个赞支持一下,让我看看有多少人支持我好吗?

以后持续为大家带来干货,这里要提前预告一下,最近会出一个很厉害的干货,相较于这两篇文章来说,这两篇文章只是开胃菜,哈哈,所以赶紧订阅我吧。

干货没看够点这里:5000字,总结App加载设计

 

本文由 @一点优秀 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自 Unsplash ,基于 CC0 协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 学习一波 牛的

    来自广东 回复
  2. 请问app下次更新后预授权弹框是怎么处理的呢

    来自江苏 回复
  3. 写的真的很好

    来自黑龙江 回复
  4. 非常感谢作者的分享,很有帮助

    来自湖北 回复
  5. 1.【网络授权框】:和【系统第一次申请授权网络弹窗】是同一个东西吗?
    2.【通知授权框】:是指被拒绝过一次后再次触发场景弹出的弹窗吗?
    3.【系统授权框】被拒后弹出的弹窗是不是【通知授权框】。如果弹窗文字是固定的,为什么能选择页面来提示?

    来自广东 回复
  6. 被拒绝后提示框的文案,是指Android还是IOS? IOS好像是定死的
    既然第一次请求授权弹窗已经有说明你不能做什么,那拒绝后似乎没有必要马上提示了把?
    (一点问题)

    来自广东 回复
  7. 请问大大,安卓的通知权限是自动获取的吗?用户不需要授权?(iOS用户所以不太熟悉安卓)

    来自广东 回复
  8. 小白学习了,很不错,以后可以直接运用工作中了 😉

    来自广东 回复
  9. 非常棒,作者可以把脑图源文件给我吗,在线等

    来自广东 回复
  10. 嘿~优秀的你!文章写得真棒!可以转载到公众号嘛?加微信you10942

    来自北京 回复
    1. 转载哈,没关系, 😆

      来自广东 回复
  11. 干货,没说的,订阅+收藏,兄dei。

    来自北京 回复
  12. 这是我见过的最详细的授权总结。不过还有未考虑到的边界情况,就是用户第一次访问APP的时候(针对IOS),如果手机未打开无线局域网和蜂窝移动网络,这个时候网络授权是不会弹出的;同样,如果手机GPS定位未打开,不过这个是有解决方案的,先引导引用户开启GPS开关。

    来自广东 回复
  13. 喜欢你的分享,有深度和广度,获益良多

    回复
    1. 感谢你的评论, 🙂

      来自广东 回复
  14. 你好,我是图书策划编辑,看了你所有的文章,想和你约下稿件,方便的话可以加下我的微信18211086848具体沟通一下

    来自山东 回复
  15. 写的不错,有公众号吗,可以关注一下

    来自浙江 回复
    1. 没有的哈,一般文章会发表在这里的

      来自广东 回复
  16. 很棒~ 作者能加微信吗?

    来自湖北 回复
    1. 可以加QQ 🙂

      来自广东 回复
    2. 1325004866,辛苦咯

      来自湖北 回复
    3. 说你的QQ我加你

      来自广东 回复
  17. 一点优秀,你真的很优秀,我只收藏了两篇文章,都是你写的,期待你的下一篇

    回复
    1. 看到你的评论就可以让我开心一天,接下来还会有好文章的~ :mrgreen:

      来自广东 回复
  18. 写的很好,获益!

    来自浙江 回复
  19. 不错不错,尤其是分析了预授权

    来自江苏 回复
  20. 好文

    来自浙江 回复
  21. 不是说安卓不需要获取相册权限吗,怎么后来的部分又写到针对安卓系统有相册权限呢

    来自北京 回复
    1. 看的很认真,确实是笔误了,不用设计相册权限

      来自广东 回复
    2. 整理思路值得学习

      来自北京 回复
  22. 学习了

    来自四川 回复
  23. 😉

    来自北京 回复
  24. 可以可以可以。我感觉可以说的在简单直白一些,其实内容不错,就是过于冗长

    来自北京 回复
    1. 如果我光说怎么设计,不说为什么就短了,但是我觉得说的全面一点对于大家的帮助可能更大 😎

      来自广东 回复
    2. 那你可以把情感化设计在融进去,这样就更全面了

      来自北京 回复
    3. 有道理哈,没想到呢,给你点赞

      来自广东 回复