swift - 如果位置未获批准 - 迅速
问题描述
所以,我目前有位置工作,所有测试看起来都很好——只要我得到用户的位置。
我想知道用户是否选择不与应用分享他们的位置,我希望它仍然能够触发一个功能。
我想知道如何做到这一点?
我的第一个想法是将其添加到以下函数中
func isLocationServicesEnabled() -> Bool {
if CLLocationManager.locationServicesEnabled() {
switch(CLLocationManager.authorizationStatus()) {
case .notDetermined, .restricted, .denied:
return false
case .authorizedAlways, .authorizedWhenInUse:
return true
@unknown default:
return false
}
}
return false
}
但我认为这可能不是最聪明的地方,因为该功能被
if isLocationServicesEnabled() {
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.delegate = self
locationManager.startUpdatingLocation()
} else {
locationManager.requestWhenInUseAuthorization()
}
所以我的想法是把它放在这个 if 查询中。
我想知道这是否是一个聪明的地方,或者是否有人有其他想法?
解决方案
如果您正确理解您的问题,即使他拒绝使用他的位置,您也总是想获取用户的位置?如果这是真的:首先:这完全不道德其次:这违反了 Apple 的规则第三:您的应用程序在尝试将其上传到 AppStore 时可能会被拒绝。
推荐阅读
- javascript - 我的后端响应没有按我想要的方式运行
- c - C - Header 中的函数实现应该使用 extern/inline/static 吗?
- python - 当 Python 3 从用户那里获取输入时,你如何执行一个函数?
- c# - 如何在powershell中选择以模式开头和结尾的字符串?
- tensorboard - 如何从张量板上删除“时间”和“相对”列?
- c++ - 调试构建,但使用 STL 优化,如发布构建
- python - 日期验证器/格式化程序返回无?
- css - 如何悬停父母并让孩子响应关键帧动画
- javascript - React Query 使用 Next.js 进行服务器端渲染
- javascript - 如何在下一个/上一个元素中隐藏/显示?