使用定位功能时,如果没有开启定位功能,如何可民提醒用户,并提示用户进入系统设置界面
如果在编码中加入了如下判断语句“[CLLocationManager locationServicesEnabled]”,则不会出现可以进入系统设置视图的提示(图1),此时应该由编码人员自定义提示(图2)。
// 判断是否开启定位服务
if ([CLLocationManager locationServicesEnabled])
{
// do something
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"定位服务未开启"
message:@"请在系统设置中开启定位服务(设置>隐私>定位服务>开启xx)"
delegate:self
cancelButtonTitle:@"知道了"
otherButtonTitles:nil, nil];
[alert show];
}
(图1)
(图2)
图1的系统提示不管在哪个系统版本均会在应用第一次使用时进行提示。
如果用户想通过编码实现跳转,则只有在iOS5.0以下系统才可实现,详细编码如下所示:
//判断是否开启定位服务
if ([CLLocationManager locationServicesEnabled])
{
// do something
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]])
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"温馨提醒"
message:@"定位服务未开启,请打开定位服务功能。"
delegate:self
cancelButtonTitle:@"设置"
otherButtonTitles:@"取消", nil];
[alert show];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"温馨提醒"
message:@"定位服务未开启,请打开定位服务功能。"
delegate:self
cancelButtonTitle:@"取消"
otherButtonTitles:@"确定", nil];
[alert show];
}
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
}
}