当前位置: 首页 > 面试题库 >

用户拒绝位置服务后再次请求权限?

陈实
2023-03-14
问题内容

我使用以下方法跟踪用户的位置并在首次加载时请求许可:

locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()

如果用户拒绝,但后来通过在我的应用中启用配置选项改变了主意,我该如何再次询问?例如,我有一个用于自动检测用户位置的开关,因此当他们启用它时,我正在尝试这样做:

@IBAction func gpsChanged(sender: UISwitch) {
    // Request permission for auto geolocation if applicable
    if sender.on {
        locationManager.requestAlwaysAuthorization()
        locationManager.startUpdatingLocation()
    }
}

但是这段代码似乎没有任何作用。我希望它会再次询问用户是否要允许该应用跟踪用户的位置。这可能吗?


问题答案:

操作系统只会提示用户一次。如果他们拒绝许可,就是这样。您 可以
做的是通过传递UIApplicationOpenSettingsURLStringUIApplicationopenURL:方法,将用户定向到您的应用的“设置”
。从那里,他们可以根据需要重新启用定位服务。就是说,您可能不应该过于激进地窃听它们以获取许可。



 类似资料:
  • 如果用户第一次拒绝,我想重新请求他的权限。我已经设置了权限,但我的应用程序运行,即使我按拒绝选项。我有一个代码,应该做我想做的事情,但我得到Cant resolve符号Snackbar,当我点击Alt+Enter时,它创建了另一个活动,并且剩余的-make和-permision_available_camera得到红色错误。

  • 问题内容: 我试图在我的resitfy服务器上使用Express Cors,但它似乎并未拒绝来自其他IP的请求。我在本地工作,所以我尝试将来源设置为随机的公共IP,但我的所有请求仍在处理中 这是我的路线: 这是我的cors.json文件,其中设置了随机IP: 在路线上设置了cors后,我可以在邮递员中看到以下内容,但请求仍在处理中?我希望访问被拒绝。 Access-Control-Allow-Or

  • 我的NodeJS应用程序的gcloud应用程序部署权限或帐户没有变化,它上次正常工作是在7月19日。我在几个月的gap后尝试了一下,现在gcloud app deploy抛出了错误: 错误:初始化缓存失败:创建映像缓存失败:访问缓存映像“asia.gcr.io//app-engine-tmp/build-cache/ttl-7d/users/buildpack-cache/ttl-7d/build

  • 我只是将nginx设置为直接代理到tomcat应用服务器的网络服务器。当用户连接到我的网站时,Nginx应该将请求重定向到运行tomcat应用服务器的端口8080。 我正在运行Redhat7的AmazonEC2实例上执行所有操作。 到目前为止,我得到的是: 我在连接上游客户端时遇到的错误是(13:权限被拒绝) 这肯定是一个用户访问问题,但似乎无法解决。nginx似乎无法重定向到端口8080。 另外

  • 当我试图通过浏览器访问localhost时会出现这个错误。 我使用以下方法检查了网站文件夹权限: 下面是我的配置文件: null

  • 在尝试使用Apache mod\u wsgi运行Flask时,我已经尝试了很多事情,但都非常沮丧。 基本上,我已经完成了以下教程: http://flask.pocoo.org/docs/deploying/mod_wsgi/#installing-mod-wsgihttp://www.lonesomedev.com/?p=169 但在浏览器上,我得到了以下错误: 访问禁止! 您无权访问请求的对象