【问题标题】:What are the rules behind "X would like to use your current location" on the iPhone?iPhone 上“X 想使用您当前的位置”背后的规则是什么?
【发布时间】:2011-01-18 05:57:55
【问题描述】:

在 iPhone 上使用位置感知会触发“X 想使用您当前的位置”-“不允许”/“确定”。在CLLocationManager 文档中声明:

“用户可以选择拒绝应用程序访问位置服务数据。在应用程序初始使用期间,核心位置框架会提示用户确认使用位置服务是可以接受的。如果用户拒绝请求时,CLLocationManager 对象在以后的请求中向其委托报告适当的错误。”

如果您点击“确定”以允许定位服务,我发现“初始使用”是两次。从第三次开始,iPhone 将记住您的设置以供将来使用该应用程序。

但是,每当应用程序的一部分尝试使用定位服务时,用户按下“不允许”就会一直受到困扰。我在自己的应用程序中至少尝试了 15 次,并且在“2010 年温哥华 - 官方移动观众指南”中更多地点击了“不允许”。这对于不想使用此功能的用户来说非常烦人。

我的问题:

  • 对于所有应用程序,如果您点击“确定”,iPhone 会询问两次并记住设置。这是一个正确的观察吗?
  • 如果您点击“不允许”,iPhone 会继续询问您的尝试次数是否有限制,或者这是否永远不会被记住?你怎么处理这个?由于 locationManager:didFailWithError: 被通知,我猜它每次都可以增加一个计数器属性并保持它。下次使用该应用程序时,将在我自己的代码中检查此设置。如果计数器 >= 2,则不要使用核心位置。
  • 我发现删除“确定”设置后的唯一方法是在常规 -> 重置 -> 位置警告中为所有应用程序重置它。有没有办法仅针对一个应用程序或通过我自己的代码执行此操作?

【问题讨论】:

  • 我实际上认为这是一种很好的行为。如果用户继续使用您的应用但不使用定位服务,那么在其中拥有定位服务有多重要?
  • 我已经创建了地图应用程序,我打算在应用程序市场推出。我的问题是......我们是否必须通过编码设置上述 OK/Dont Allow 警报?如果是,则将示例链接重定向给我。提前致谢。

标签: iphone core-location


【解决方案1】:

您现在可以在设置中的常规、定位服务下设置或取消设置一个应用程序。大概是4.0引入的吧?

如果您是注册开发者,您可以查看 API 差异以获取最新的测试版。他们可能改进了错误处理。

【讨论】:

    【解决方案2】:
    1. 是的,它总是会问你两次。有点奇怪和不直观的恕我直言。据我了解,这是为了以防您第一次按错按钮。之后,它假定您知道自己想要什么。

    2. 我在 LocateMe 示例中找到了以下内容:

      连续两次应用启动时的“不允许”与说“从不允许”相同。 但我也读到其他人也看到了和你一样的行为。也许最近的操作系统更新发生了变化?无论如何,你的方法听起来很合理。

    3. 我不相信你可以只为一个应用程序重置,抱歉。

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      • 2012-06-16
      相关资源
      最近更新 更多