ios - Locationmanager didchangeauthorizationstatus 未在后台调用

标签 ios swift cllocationmanager

当应用程序处于后台时,我似乎没有收到 delegate 方法的通知。一旦应用程序进入前台,我就会得到 didChangeAuthorizationStatus 。还有其他人在后台成功获取 authorizationStatus 吗?

顺便说一句,其他delegate方法在后台工作,所以我知道我已经在info.plist中设置了正确的属性。

最佳答案

尽管它位于委托(delegate)类 didChangeAuthorization 中,但仅当以下两个条件都成立时才会调用:

  • 用户更改应用位置服务授权状态
  • 应用调用 requestWhenInUseAuthorization() 或 requestAlwaysAuthorization()

它不会从后台调用以响应用户更改“设置”应用程序中的设置,更改设置不会导致 iOS 唤醒您的应用程序。如果用户更改设置,那么您的应用将停止接收位置更新,直到应用下次进入前台时才会知道原因。

关于ios - Locationmanager didchangeauthorizationstatus 未在后台调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42282965/

相关文章:

ios - 从 iOS 相机胶卷中获取图片的时区

ios - 栏按钮项目未显示

ios - 子类化时混合objective-c和swift

ios - Firebase 数据库查询出错

ios - 如何从 iOS 中的默认注释 Mapkit 获取位置名称

ios - 当后台请求完成时通知 swift

Swift Generic 不显示 nil

ios - UITextField 数字键盘 : dot instead of comma for float values

ios - 在设置中禁用位置后无法重新启用位置

ios - 根据 iDevice 磁强计读数旋转 UIView