CLLocationManager和tvOS-RequestWhenUseAuthorization()未提示



我似乎在让tvOS提示用户进行位置数据授权时遇到了一些问题。我真的从iOS复制并粘贴了工作代码,它似乎没有提示用户。我正在使用下面列出的代码以及带有字符串值的NSLocationWhenUseUsageDescription键。我看到的api中唯一的区别是,在iOS上它使用startupdatinglocation(),而在tvOS上它使用requestLocation()(类似于watchOS)。我已经解决了这个问题,它实际上击中了requestWhenUseAuthorization(),但根本不提示用户。

知道发生了什么事吗?

import UIKit
import CoreLocation
class ViewController: UIViewController {
  var locationManager = CLLocationManager()
  override func viewDidLoad() {
  super.viewDidLoad()
  locationManager.delegate = self
  locationManager.desiredAccuracy = kCLLocationAccuracyBest
  if CLLocationManager.locationServicesEnabled(){
    if CLLocationManager.authorizationStatus() == CLAuthorizationStatus.NotDetermined{
      locationManager.requestWhenInUseAuthorization()
    }
    else if CLLocationManager.authorizationStatus() == CLAuthorizationStatus.AuthorizedWhenInUse{
      locationManager.requestLocation()
    }
  }
}

事实证明,要显示提示,需要CFBundleDisplayName键和$(PRODUCT_NAME)值。

相关内容

  • 没有找到相关文章

最新更新