再次提出“应用程序想要使用您当前位置”对话框

可能重复:
是否可以手动调用警报“允许使用当前位置”?

在我的应用程序中,所有function都基于用户的当前位置。 观众是除了怪异之外的一切。

我认为用户首先启动应用程序 – 因为用户不确定它能做什么,他/她可能会对应用程序“想要使用您当前位置?”感到困惑。 如果他回答“不允许”,他将不会在屏幕上获得任何数据。

现在我处理:

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { if (error.code == kCLErrorDenied) { NSLog(@"Location manager denied access - kCLErrorDenied"); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location issue" message:@"Your location cannot be determined." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; [alert release]; } } 

好的,该应用程序有一个Reload-Button。 假设用户点击该重新加载按钮,系统将不会再次询问他以启用基于位置的服务。

我怎么能强迫iOS再次询问当前位置?

您无法强制再次显示此对话框。 iOS将在下次启动应用时再次询问用户。 通过启动,我并不是指在将应用程序发送到后台后进入前台。

目前,执行此操作的唯一快速方法似乎是要求用户重新启动应用程序然后崩溃(或设置UIApplicationExitsOnSuspend键并启动Safari)。 当用户重新启动应用程序时,该对话框将可用。

当Apple审核时,这可能会或可能不会立即拒绝您的应用。