我有一个应用程序,它的核心功能围绕着用户当前位置的使用。它在地图上显示用户附近的对象。我不创建位置管理器,我只是使用地图视图。这很有效,但现在我正在努力确保我的应用程序正确地提醒用户它需要定位服务。我现在正在做的是在应用程序DidBecomeActive方法中创建一个新的位置管理器,并尝试开始更新,以便在应用程序打开或从后台返回时触发用户的权限请求,位置服务关闭如下:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
CLLocationManager *manager = [[CLLocationManager alloc] init];
if([CLLocationManager locationServicesEnabled])
{
NSLog(@"yes");
}
[manager startUpdatingLocation];
}
问题1:这样做好吗?
问题2:由于我的应用程序的各个方面都使用定位服务,如果用户在收到我的应用要使用定位服务的提示时选择"不允许",那么关闭应用程序是否合适?
将感谢来自处理定位服务以及向用户的通知和请求的经验的任何其他建议。
你不能"关闭"应用程序——苹果不允许这样做,而且实际上没有公共的API可以"退出"。
相反,你可以弹出一个占据整个屏幕的视图,解释在没有CoreLocation权限的情况下无法正常操作。甚至可以通过一个按钮使CLLocationManager再次提示他们获得权限。
用程序关闭应用程序违反了苹果的指导方针,这样做可能会被拒绝。