
今天无聊,下了个炒币资讯的 APP,在上传头像这个步骤的时候,发现居然不需要用户授权,直接能进入相册选择照片,没有任何的提示信息直接就进入到了相册!!!后面百度了下,发现出现这个问题的都是 iOS11 的用户,我用另外一台手机是 iOS9 的测试,该 APP 会弹出授权提示框,必须用户确认后才能进入相册。我比较好奇,难道这是一个 iOS11 的 BUG 吗?
1 dewi OP 补充下,在 iOS11 系统下,在设置-隐私-相册中也找不到该 APP。超级好奇这个程序员是这么做到的! |
2 dibage 2018 年 5 月 24 日 我上次也发现了,感觉应该是先预览,如果选择图片的话,回进行权限请求提示,拒绝的话则无法获取图片数据 应该是这样的 |
3 kera0a 2018 年 5 月 24 日 iOS11 默认开启相册读权限,无需用户授权 |
4 honeycomb 2018 年 5 月 24 日 via Android @dewi 这是 intended behavior,因为应用自始至终都没有访问到相册。 实际上发生了这样的事: 应用让系统的相册返回一张照片,这张照片是你刻意挑的。这个过程中只有系统的相册访问到了相册。 Android 中也有类似的特性。 |
5 xuhaoyangx 2018 年 5 月 24 日 @honeycomb #4 Android 有吗?有文章观摩吗? |
6 kera0a 2018 年 5 月 24 日 |
7 SourceMan 2018 年 5 月 24 日 via iPhone 类似于 web 上面的 input file 吗?应用只能得到你最后选择的那个 |
8 afpro 2018 年 5 月 24 日 android: Intent.ACTION_GET_CONTENT |
9 wpo 2018 年 5 月 24 日 iOS 11 默认就有“读”权限,“写”需要授权。 |
12 dewi OP @honeycomb 但是我选择照片上传了以后,在设置隐私里也没看到这个 APP。你的意思是说,其实这一次的获取请求是调用了系统相册进行获取的,而不是 APP 直接获取,所以不会在隐私中显示,是这个意思吗? |
14 w99wen 2018 年 5 月 24 日 如果使用苹果提供的一个特定的选择图片的类,这个类只能选择一张图片,而且选择过程 app 不知道到底有多少张图片,只能知道用户最终选择了一张照片,这种不需要权限的。 如果是够获取所有图片的路径,这个是要权限。 |
15 yushiro 2018 年 5 月 24 日 via iPhone 在 ios 的浏览器里面上传一张图片,也不用授权给浏览器,一个原理,只能访问你选择的那张图片,其他图片对 app 是不开放的 |
16 honeycomb 2018 年 5 月 24 日 via Android @dewi 是的,就是这么回事。 app 委托由系统图库请求你 pick 一张照片(或者是联系人等需要权限的东西)给它,如此: app 本身不需要访问整个资源的权限 实际操作者是有权限的系统图库 从结果上依然是用户明示地授权,而且总是一次性的,可以避免滥用 |
17 mcluyu 2018 年 5 月 25 日 试了一下,就和选择单个通讯录联系人一样, 使用 imagePicker 选取一张图片是不需要权限的,iOS11 |