首页 > 解决方案 > 如果位置未获批准 - 迅速

问题描述

所以,我目前有位置工作,所有测试看起来都很好——只要我得到用户的位置。

我想知道用户是否选择不与应用分享他们的位置,我希望它仍然能够触发一个功能。

我想知道如何做到这一点?

我的第一个想法是将其添加到以下函数中

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 查询中。

我想知道这是否是一个聪明的地方,或者是否有人有其他想法?

标签: swiftlocation

解决方案


如果您正确理解您的问题,即使他拒绝使用他的位置,您也总是想获取用户的位置?如果这是真的:首先:这完全不道德其次:这违反了 Apple 的规则第三:您的应用程序在尝试将其上传到 AppStore 时可能会被拒绝。


推荐阅读