【问题标题】:Ask permission for location after user rejected it. Swift 3. IOS [duplicate]在用户拒绝后请求位置许可。 Swift 3. IOS [重复]
【发布时间】:2017-06-28 00:24:42
【问题描述】:

我是 ios 新手,但有以下问题。

应用启动时,用户应接受位置权限。这工作正常。如果他不允许,某些功能将无法使用。

但是,我希望当用户尝试使用这些功能时,他会收到一条警告,指出他没有接受位置许可。这个我也做过。但是我希望警报有一个按钮,可以让他现在接受它(这样他就不必进入手机上的设置来执行此操作)这是我无法做到的。

我为这样的警报创建了一个处理程序,但接受权限不起作用。 这是处理程序...

 func someHandler(alert: UIAlertAction!) {
    print("User now wants to let location from new")

    self.locationManager.requestWhenInUseAuthorization()

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

}

这是错的,我还应该说什么。目前,当调用处理程序时,位置服务没有打开。

谢谢

【问题讨论】:

  • 你为什么要同时申请两个授权?只问你需要的那个。
  • 您为什么要同时请求这两个位置权限?即始终WhenInUse。您只需要请求其中之一。 WhenInUse:每当应用程序处于前台时获取位置,而 Always 适应前台和后台。
  • 对,解决了这个问题,并编辑了我的问题。

标签: ios swift cllocationmanager


【解决方案1】:

你不能做你想做的事。只有用户可以通过“设置”应用更改设置。

如果您可以通过编程方式更改权限,那将是一场安全噩梦。并且没有 API 可以强制 iOS 第二次显示权限警报。

【讨论】:

  • 好的。谢谢,很高兴知道。但是我可以让按钮直接进入设置应用页面吗?
  • 是的,有很多例子。搜索UIApplicationOpenSettingsURLString
猜你喜欢
  • 1970-01-01
  • 2017-03-02
  • 2015-04-02
  • 1970-01-01
  • 2018-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
相关资源
最近更新 更多