作者kokuyoku (天龙狂想曲)
看板MacDev
标题Re: [问题] 像Android的permission iOS上相对应的是?
时间Mon Aug 24 23:18:21 2015
这部份iOS跟Android有很大的不同
1
要求权限以code为主 有些可能要在Info.plist设定(但不多)
主要请以当下开发时Apple所规定的方式为主
2
一个提示框问一个功能
没有一个提示框问所有功能
有些是用到功能时OS主动会去问
有些是开发者要去写询问的code
3
每个功能的关键字都不太一样
我个人是习惯去看文件找函式用
==============================================================================
以定位为例
在iOS4.1以前没有要求权限问题
只要管定位服务有没有被开启 有开启就能使用
iOS3以前用 - locationServicesEnabled
iOS4以後用 + locationServicesEnabled
==============================================================================
到了iOS4.2後
APP第一次呼叫 - startUpdatingLocation 相关的函式时
OS会主动问使用者要不要允许
如果使用者没有同意的话
之後再次使用定位相关的功能OS不会再问使用者是否允许
开发者要用 + authorizationStatus 去判断有没有被允许
如果没有允许 请自行设计一个提示框要求使用者开启
==============================================================================
隔了几年iOS8发表
定位的权限被细分为「永远」、「使用App期间」、「永不」三项
也不可以直接呼叫 - startUpdatingLocation 请OS主动弹提示框
要先呼叫 - requestAlwaysAuthorization 或 - requestWhenInUseAuthorization
去要求权限
然後用 delegate 的 - locationManager:didChangeAuthorizationStatus:
去接收权限更动的事件
後面一样用 + authorizationStatus 去判断定位功能有没有被允许
==============================================================================
另外有一个是背景执行时可以进行定位功能
那个是在 Info.plist 的 UIBackgroundModes 中写入 location
用法就跟前面要求权限的不一样
※ 引述《hodsala (猴的沙拉)》之铭言:
: 因为要减少要求不必要的权限, 以免增加安装者的疑虑
: 在Android的话可以在AndroidManifest.xml里设定要求哪些permission
: 然後在googleplay里安装时就不会对安装者要求一堆不必要的权限
: 请问这方面在iOS上是怎麽样的流程呢?
: 1.是否有相对应的设定档?
: 2.有朋友说要用code去要求使用者给权限,
: 如果是这样的话,那是每触发一个需要的功能就问一次吗?
: 还是在第一次开启时一个弹跳视窗全要?
: 3.可否给一些关键字让我去google
: 感嗯<(_ _)>
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.163.123.148
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1440429503.A.F79.html
1F:推 sy305allen: 详细 推! 08/25 01:26
2F:推 hodsala: 专业绝对! 感谢 08/25 03:26