0

假设我关闭了地图中的位置。我去地图。苹果会弹出一些东西并说该位置不可用。当用户按下设置时,它会进入设置。

我们如何弹出该消息?

我知道我可以使用 UIAlertView。但是,该消息似乎是苹果标准。此外,当按下设置时,人们会直接设置。我不明白我怎么能做出这样的事情,或者我可以吗?

当我们尝试获取位置但无权这样做时,Apple似乎只是自动显示该弹出窗口。

好吧,在我的情况下不是。在我的情况下,如果应用程序没有这样做的权限,它只会挂起等待永远不会出现的权限。

4

2 回答 2

1

当应用程序第一次想要使用位置服务时,系统会显示该警报。用户可以选择启用它,但不会再次显示该警报。作为开发人员,您也没有能力再次展示它。

您可以做的是检查authorizationStatuson CLLocationManager

if ([CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorized) {
    // show alert telling the user to enable location services for this app
}

但是,您无法直接打开“设置”应用。

于 2013-04-11T05:42:23.100 回答
0

检查位置服务是否已启用。如果未启用位置服务,请创建一个带有位置服务消息的自己的 UIAlertView。

if([CLLocationManager locationServicesEnabled] && 
     [CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied)
{
    // Show alert 
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex  
{
    if(alertView.tag == 1)
    {
        // set Url 
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];


    }
}
于 2013-04-11T06:09:45.763 回答