【问题标题】:Toggle CoreLocation using Swift使用 Swift 切换 CoreLocation
【发布时间】:2015-01-11 20:34:46
【问题描述】:

当您在我的 swift 应用程序中按下按钮时,我正在尝试打开和关闭 CoreLocation。当应用程序加载时,这就是我打开它的方式

let locationManager = CLLocationManager()
locationManager.requestWhenInUseAuthorization()

if CLLocationManager.locationServicesEnabled() {
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.startUpdatingLocation()
}

这很好用。它会提示用户,然后更新我在地图上的位置。但是,如果您在请求时选择“否”,我希望能够再次将其重新打开。我认为这就像再次请求授权一样简单,但它不起作用。我有一个方法可以在按下按钮打开位置时调用。

此方法的代码基本完全相同。最初设置授权状态后,我需要做些什么不同的事情吗?

【问题讨论】:

    标签: ios swift mapkit cllocationmanager


    【解决方案1】:

    如果您在请求时选择“否”,我希望能够再次将其重新打开

    一旦用户选择拒绝你的授权,你就不能神奇地反驳用户,而且(唉)你不能让系统的授权对话框再次出现。

    您能做的最好的事情就是设置您自己的对话框(即警告)请求用户转到“设置”并拨动开关以授予您授权。您甚至可以用户带到设置(iOS 8 中的新功能)。但是您无法再次获得该系统授权对话框。

    【讨论】:

    • 非常感谢!这正是我需要听到的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    相关资源
    最近更新 更多