1

我有一个应用程序,其核心功能围绕用户当前位置的使用展开。它在地图上显示用户附近的对象。我不创建位置管理器,我只使用地图视图。这很好用,但现在我试图确保我的应用程序正确地提醒用户它需要位置服务。我现在正在做的是在 applicationDidBecomeActive 方法中创建一个新的位置管理器,并尝试开始更新,以便在应用程序打开或从后台返回时触发用户许可请求,位置服务关闭如下:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    CLLocationManager *manager = [[CLLocationManager alloc] init];
    if([CLLocationManager locationServicesEnabled])
    {
        NSLog(@"yes");
    }
    [manager startUpdatingLocation];
}

问题1:这是一个好方法吗?

问题 2:由于我的应用程序的每个方面都使用位置服务,如果用户在提示我的应用程序想要使用位置服务时选择“不允许”,是否适合关闭应用程序?

任何其他从处理位置服务的经验以及对用户的通知和请求的建议将不胜感激。

4

2 回答 2

1

您不能“关闭”应用程序——Apple 不允许这样做,而且实际上没有公共 API 可以“退出”。

相反,您可以做的是抛出一个占据整个屏幕的视图,解释在没有 CoreLocation 许可的情况下无法正常操作。甚至可以通过一个按钮使 CLLocationManager 再次提示他们获得许可。

于 2011-06-03T19:25:19.380 回答
0

以编程方式关闭应用程序违反了苹果的指导方针,这样做很可能会被拒绝。

于 2011-06-03T19:21:39.490 回答