定位权限请求时易犯的错误小结

移动开发 作者: 2024-08-25 00:40:01
起因 用户群反馈app可能请求了不合适的定位权限:始终定位。 看到这个截图,根据经验判断可能是后台定位功能导致可能不得不请求始终定位权限。再加上之前提交审核时,苹果要求在plist文件中新增NSLoc
  • 查现有代码和plist文件
  • 查官方文档
  • 改工程代码
  • 提交审核,查看邮件提醒
  • app退入后台,查看定位信息是否输出

查plist文件和权限请求代码

plist文件

NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
NSLocationAlwaysAndWhenInUseUsageDescription

权限请求代码

  if ([_locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
            [_locationManager requestAlwaysAuthorization];
   }

查官方文档

plist文件配置

  • NSLocationAlwaysUsageDescription
  • NSLocationWhenInUseUsageDescription
  • NSLocationAlwaysAndWhenInUseUsageDescription
  • 如果app需要前台运行定位权限,需要配置NSLocationWhenInUseUsageDescription;
  • 如果app需要后台运行定位权限,需要配置NSLocationAlwaysAndWhenInUseUsageDescription;如果适配iOS11之前版本,还需要配置NSLocationAlwaysUsageDescription

权限请求代码

改工程代码

  • 保持plist配置不变
  • 修复请求方法:
  if ([_locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
            [_locationManager requestWhenInUseAuthorization];
  }

提交审核,查看邮件提醒

app退入后台,查看定位信息是否输出

  • 让我们杜绝浅尝辄止,追求精益求精!
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_68110.html