位置访问 - 应用不请求用户访问位置的权限 - iOS 11
Location access - App is not asking for user permission to access location - iOS 11
描述
应用程序未请求用户访问位置和获取状态 notDetermined 的权限
完美工作直到 iOS-10
var locationManager : CLLocationManager!
func getLocationDetails()
{
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.allowsBackgroundLocationUpdates = true
locationManager.startUpdatingLocation()
}
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)
{
if status == CLAuthorizationStatus.authorizedAlways || status == CLAuthorizationStatus.authorizedWhenInUse
{
locationManager.startUpdatingLocation()
}
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
}
Plist 截图
背景模式
请同时请求其他权限"When ever in use permission"并将这两个权限都添加到 plist 中。
请将requestAlwaysAuthorization
改为whenInUseAuthentication
。然后它将开始工作。我认为这可能是由于 xcode 的 GM Seed/Beta 版本。在稳定版本中,我们可能没有这个问题。
我已经阅读了 Apple 文档并找到了这个问题的解决方案。
Apple 更改了一些准则来获取用户位置。
这是视频 Link:Apple- What's New in Location Technologies
Full code for location access in Swift & Objective-C both
解法:
现在我们需要在 Plist 中添加三个 Authentication Key:
- NSLocationAlwaysAndWhenInUseUsageDescription
- NSLocationWhenInUseUsageDescription
- NSLocationAlwaysUsageDescription
Plist 看起来像:
身份验证消息屏幕将如下所示:
Full code for location access
我在 info.plist
文件中添加了 Keys 以请求权限,但是在删除应用程序并再次打开后,模拟器没有显示警报以允许用户 select 一个选项。
我可以在删除应用程序后再次出现警告,然后打开 settings
应用程序,最后再次安装应用程序。
希望对大家有所帮助。
描述
应用程序未请求用户访问位置和获取状态 notDetermined 的权限
完美工作直到 iOS-10
var locationManager : CLLocationManager!
func getLocationDetails()
{
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.allowsBackgroundLocationUpdates = true
locationManager.startUpdatingLocation()
}
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus)
{
if status == CLAuthorizationStatus.authorizedAlways || status == CLAuthorizationStatus.authorizedWhenInUse
{
locationManager.startUpdatingLocation()
}
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
}
Plist 截图
背景模式
请同时请求其他权限"When ever in use permission"并将这两个权限都添加到 plist 中。
请将requestAlwaysAuthorization
改为whenInUseAuthentication
。然后它将开始工作。我认为这可能是由于 xcode 的 GM Seed/Beta 版本。在稳定版本中,我们可能没有这个问题。
我已经阅读了 Apple 文档并找到了这个问题的解决方案。
Apple 更改了一些准则来获取用户位置。
这是视频 Link:Apple- What's New in Location Technologies
Full code for location access in Swift & Objective-C both
解法:
现在我们需要在 Plist 中添加三个 Authentication Key:
- NSLocationAlwaysAndWhenInUseUsageDescription
- NSLocationWhenInUseUsageDescription
- NSLocationAlwaysUsageDescription
Plist 看起来像:
Full code for location access
我在 info.plist
文件中添加了 Keys 以请求权限,但是在删除应用程序并再次打开后,模拟器没有显示警报以允许用户 select 一个选项。
我可以在删除应用程序后再次出现警告,然后打开 settings
应用程序,最后再次安装应用程序。
希望对大家有所帮助。