我正在创建一个使用用户当前位置的应用。首次运行时,在提示用户允许或拒绝应用程序使用它的位置后,我想在用户按下“允许”按钮时执行操作。有没有办法检测用户何时按下“允许”按钮?
答案 0 :(得分:4)
Swift 3.0
您可以使用以下委托方法来检测用户是否是授权位置。如果用户允许该位置,则会返回状态.authorizedAlways
或.authorizedWhenInUse
。
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
}
答案 1 :(得分:0)
您无法直接访问该提醒。
如果用户点击"不允许"然后CLLocationManager将在其委托上调用 locationManager:didFailWithError:。错误域为kCLErrorDomain,错误代码为kCLErrorDenied。
您可以检查用户是否允许的状态。
let notificationType = UIApplication.shared.currentUserNotificationSettings?.types
if notificationType?.rawValue == 0 {
self.openPushNotificationDialog() //user denied or don't allowed
}
通知的正式链接https://developer.apple.com/documentation/usernotifications/unauthorizationstatus
答案 2 :(得分:0)
适用于Swift 3X
您可以点击authorizedalways允许和拒绝然后调用此方法并获取有关此信息的一些信息。
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == CLAuthorizationStatus.NotDetermined {
locationManager.requestWhenInUseAuthorization()
}
}