无法在我的应用中重新启用位置

时间:2016-07-05 09:53:55

标签: ios objective-c xcode xib

我有一个按钮操作,其中核心位置方法正常工作

我只是想当我不允许位置并再次按下按钮然后出现UIAlertView,再次询问允许启用位置

我不知道我放了什么代码让我的位置再次出现。有人帮助我

hare是我源代码的示例 -



 - (IBAction)geolocation:(id)sender { 
    if([CLLocationManager locationServicesEnabled] &&
       [CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied) {
        // show the map
       
    NSString *parameter = [NSString stringWithFormat:@"lat=%@&long=%@",lati,longs];
    
    NSURL *url_ = [[NSURL alloc]initWithString:[NSString stringWithFormat:@"http://***/near_by_api.php"]];
    
    NSData *postData = [[NSString stringWithFormat:@"%@",parameter] dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
    
    NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]];
    
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:url_];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];
    
    NSError *error = [[NSError alloc] init];
    NSHTTPURLResponse *response = nil;
    NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    
    if (urlData) {
             
        record = [NSMutableArray array];
        record = [NSJSONSerialization JSONObjectWithData:urlData options:kNilOptions error:nil];
        
        [self.view addSubview:third_view];
        [third_view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
        [third_tbl_view reloadData];
    }}else{
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Location Service Disabled" message:@"Allowed location?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK",nil];
        [alert show];
    }
    
    
    
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 0)
    {
      //code for cancel
        

    }
    if (buttonIndex == 1)
    {
        //Code for ok button
        
        
                   }
}

{{1}}




1 个答案:

答案 0 :(得分:2)

如果您不允许位置,则下次必须在设置中手动激活位置。您可以通过以下方式打开设置:

if (&UIApplicationOpenSettingsURLString != NULL) {
   NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
    [[UIApplication sharedApplication] openURL:url];
}
else {
  // Present some dialog telling the user to open the settings app.
}