【问题标题】:iPhone Objective-C: Ensure user allows location sharing before doing other actionsiPhone Objective-C:确保用户在执行其他操作之前允许位置共享
【发布时间】:2010-07-26 17:59:57
【问题描述】:

我的应用程序在登录屏幕上询问位置,现在,用户可以登录而无需分享他或她的位置。当用户为共享位置选择“否”时,会引发错误,显示为Error Domain=kCLErrorDomainCode=1 "The operation couldn't be completed. (kCLErrorDomain error 1.)"。我猜那是因为我试图在没有这些东西的情况下访问纬度和经度。

我的问题是,如何确保用户在执行任何其他操作之前允许定位?有没有办法创建一个新的“允许位置”弹出请求?

提前致谢!

【问题讨论】:

  • 你不认为“不”意味着“不”吗??
  • 我的应用程序是一个基于位置的应用程序,如果用户真的想使用该应用程序,他们说不是没有意义的。我能想到的唯一原因是:1)用户不知道这是一个基于位置的应用程序,并且会继续不使用该应用程序(在这种情况下,我真的不需要对此做任何事情)。 2) 用户不小心选择了否,并且没有简单的方法来允许位置。我在问如何解决案例 2。

标签: iphone objective-c cllocationmanager


【解决方案1】:

您需要实现locationManager:didFailWithError.

文档指出:

如果用户拒绝您的应用程序 使用定位服务,这 方法报告kCLErrorDenied 错误。收到这样的错误后, 你应该停止定位服务。

其他信息是here

【讨论】:

  • 这正是我想要的。谢谢!!
  • 我的印象是,如果用户重新启动应用程序,它会再次提示用户允许定位。我刚试了一下,好像不是这样的。我能做些什么来解决这个问题?再次感谢!
  • @ayanonagon 您应该在每次收到 KCLErrorDenied 错误时通知用户您的应用程序或某些功能需要位置服务,并且他们应该通过设置应用程序授予应用程序权限。
  • 啊!我不知道设置页面中甚至存在这样的页面:X 我会通知我的用户这样做。非常感谢。
【解决方案2】:

我的建议是让您的应用程序通过通知用户这是一项要求等方式来应对没有位置信息可用的情况。

重复对话直到你得到你想要的答案只会惹恼用户。

【讨论】:

  • 我可以执行“单击此处允许定位”之类的操作吗?如果是这样,怎么做?我的问题是允许位置请求现在只显示一次。谢谢。
猜你喜欢
  • 2016-07-13
  • 2020-11-20
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
  • 2016-08-29
  • 2016-03-21
相关资源
最近更新 更多