代码之家  ›  专栏  ›  技术社区  ›  Mads Mobæk

iPhone上“X想使用你当前的位置”背后有什么规则?

  •  13
  • Mads Mobæk  · 技术社区  · 15 年前

    CLLocationManager

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

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

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

    我的问题:

    • 对于所有应用程序,iPhone都会询问两次,如果你点击“OK”,就会记住设置。这是正确的看法吗?
    • 我找到的唯一方法是在记住“确定”设置后,将其重置为所有应用程序的常规设置->重置->位置警告。有没有办法只对一个应用程序执行此操作,或者从我自己的代码执行此操作?
    2 回复  |  直到 15 年前
        1
  •  5
  •   cagreen    15 年前
    1. 是的,它总是会问你两次。有点奇怪和不直观。据我所知,这是为了防止你第一次按错按钮。在那之后,它假设你知道你想要什么。

    2. 我在LocateMe示例中发现了以下内容:

      在连续两次的应用程序发布中,“不允许”等同于“从不允许”。 但我也看到其他人看到了和你一样的行为。也许最近的操作系统更新有变化?不管怎样,你的方法听起来很合理。

        2
  •  1
  •   Bjinse    14 年前

    现在,您可以在“设置”中的“常规”下的“位置服务”中设置或取消设置一个应用程序。可能在4.0中引入?

    如果你是一个注册的开发人员,你可以检查最新测试版的API差异。他们可能已经改进了错误处理。

    推荐文章