关闭

[置顶] iOS11中的定位授权

标签: ios定位
11468人阅读 评论(1) 收藏 举报
分类:

前台定位权限

1,增加NSLocationWhenInUseUsageDescription。
2,创建CLLocationManager对象,在使用定位服务前调用requestWhenInUseAuthorization()。
3,通过func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)处理权限变化。该函数并不会在每次改改变权限后都会被调用。

参考:
1,https://developer.apple.com/documentation/corelocation/choosing_the_authorization_level_for_location_services/requesting_when_in_use_authorization

前后台定位权限

如果希望在app在前台后台都可以使用定位服务,需要完成以下几点:
1,在plist中增加NSLocationWhenInUseUsageDescription和NSLocationAlwaysAndWhenInUsageDescription,如果需要支持iOS10的话,增加NSLocationAlwaysUsageDescription。
2,创建CLLocationManager对象,用requestWhenInUseAuthorization()获得基本定位支持,用requestAlwaysAuthorization()获得前后台定位支持。
3,在第一次调用requestAlwaysAuthorization()时,会提示NSLocationAlwaysAndWhenInUsageDescription中指定的文字,让用户选择是升级到全权限还是,前台权限。
4,通过func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)处理权限变化。该函数并不会在每次改改变权限后都会被调用。
参考:
1,https://developer.apple.com/documentation/corelocation/choosing_the_authorization_level_for_location_services/request_always_authorization

注意:
requestWhenInUseAuthorization只有在用户未选择时会弹出对话框。
* When +authorizationStatus != kCLAuthorizationStatusNotDetermined, (ie
* generally after the first call) this method will do nothing.

1
0
查看评论

ios 11 定位权限增加仅在使用期间使用方法

1.在plist中增加NSLocationWhenInUseUsageDescription和NSLocationAlwaysAndWhenInUsageDescription,如果需要支持iOS10的话,增加NSLocationAlwaysUsageDescription。  2. ...
  • ZZQCSN
  • ZZQCSN
  • 2017-12-06 12:02
  • 367

iOS开发检测是否开启定位、是否允许消息推送等权限

1.iOS开发检测是否开启定位: 需要导入: #import 代码如下: + (void)openLocationServiceWithBlock:(ReturnBlock)returnBlock { BOOL isOPen = NO; if ([CLLocationM...
  • wgl_happy
  • wgl_happy
  • 2016-12-22 16:57
  • 6567

iOS11中的定位权限

前台定位权限 1,增加NSLocationWhenInUseUsageDescription。  2,创建CLLocationManager对象,在使用定位服务前调用requestWhenInUseAuthorization()。  3,通过func locationManag...
  • autom_lishun
  • autom_lishun
  • 2017-10-12 10:06
  • 2474

iOS 用户允许定位权限提示框闪现

需要访问用户位置的应用,在第一次启动时应该弹出 允许“xx”在您使用该应用时访问您的位置 或者 一直访问位置的提示框。 在开发中,我遇到这个提示框闪现的问题,原因是我使用了arc. kai sh我在delegate  didFinishLaunchingWithOptions中这样写的 ...
  • liyun123gx
  • liyun123gx
  • 2015-04-24 18:39
  • 1997

ios 判断用户是否开启定位权限并跳转设置

//请开启定位服务 CLAuthorizationStatus status = [CLLocationManager authorizationStatus]; if (kCLAuthorizationStatusDenied == status || kCLAuthorizati...
  • TianYou_Code
  • TianYou_Code
  • 2016-10-24 10:44
  • 5892

IOS 使用CoreLocation定位 不弹出权限提示

代码如下: var locationManager:CLLocationManager!override func viewDidLoad() { super.viewDidLoad() locationManager = CLLocationManager() loca...
  • blacklife00544
  • blacklife00544
  • 2016-03-04 17:19
  • 2481

iOS各种权限状态获取

1 相机权限 NSString *mediaType = AVMediaTypeVideo; AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMedi...
  • Hchq_99
  • Hchq_99
  • 2016-05-06 17:36
  • 4192

关于iOS11定位失效的问题解决方案

具体原因是苹果新增一个权限,自己可查,这里只有解决方案, ,原来的永久定位权限已经下降为使用期间 需要新增如下两个权限,解决问题并恢复到原来定位 NSLocationAlwaysAndWhenInUseUsageDescription 和 NSLocationWhenInUseUsageDes...
  • sinat_29998157
  • sinat_29998157
  • 2017-08-22 09:02
  • 8674

关于定位的 NSLocationWhenInUseUsageDescription

NSLocationWhenInUseUsageDescription 是在系统设置里 的应用说明 如下图
  • a287971
  • a287971
  • 2015-12-21 02:17
  • 1826

iOS11问题: 定位服务在iOS11系统上不能使用?

Q:我刚刚用iOS11 SDK重新构建了应用程序,发现定位服务现在根本不起作用。原因:A:因为苹果现在增加了一项新的隐私保护功能 NSLocationAlwaysAndWhenInUseUsageDeion,并且原有的 NSLocationAlwaysUsageDeion 被降级为 NSLocati...
  • qq_31810357
  • qq_31810357
  • 2017-09-21 09:05
  • 12838
    个人资料
    • 访问:39317次
    • 积分:833
    • 等级:
    • 排名:千里之外
    • 原创:40篇
    • 转载:4篇
    • 译文:6篇
    • 评论:12条
    最新评论