Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何检测用户何时按下;允许;当请求用户位置时_Ios_Swift_Swift3_Location_Cllocation - Fatal编程技术网

Ios 如何检测用户何时按下;允许;当请求用户位置时

Ios 如何检测用户何时按下;允许;当请求用户位置时,ios,swift,swift3,location,cllocation,Ios,Swift,Swift3,Location,Cllocation,我正在创建一个使用用户当前位置的应用程序。在第一次运行时,在提示用户允许或拒绝应用程序使用其位置后,当用户按下“允许”按钮时,我想做一些事情。是否有办法检测用户何时按下“允许”按钮?您无法直接访问该警报 如果用户单击“不允许”,则CLLocationManager将对其代理调用locationManager:didFailWithError:。错误域将为kCLErrorDomain,错误代码将为kCLErrorDenied 您可以检查用户是否允许的状态 let notificationType

我正在创建一个使用用户当前位置的应用程序。在第一次运行时,在提示用户允许或拒绝应用程序使用其位置后,当用户按下“允许”按钮时,我想做一些事情。是否有办法检测用户何时按下“允许”按钮?

您无法直接访问该警报

如果用户单击“不允许”,则CLLocationManager将对其代理调用locationManager:didFailWithError:。错误域将为kCLErrorDomain,错误代码将为kCLErrorDenied

您可以检查用户是否允许的状态

let notificationType = UIApplication.shared.currentUserNotificationSettings?.types
        if notificationType?.rawValue == 0 {
            self.openPushNotificationDialog() //user denied or don't allowed
        } 

通知的官方链接

Swift 3.0

您可以使用下面的委托方法来检测用户是否处于授权位置。如果用户允许该位置,则它将返回状态
.authorizedAllways
.authorizedWhenInUse

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {

}

适用于Swift 3X

您可以单击AuthorizedAllowandDeny,然后调用此方法并获取有关此方法的一些信息

func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == CLAuthorizationStatus.NotDetermined {
    locationManager.requestWhenInUseAuthorization()
}
}