2012-04-05 7 views
0

In meiner App möchte ich zur ausgewählten Nummer anrufen. Dazu habe ich folgenden Codetel in openURL funktioniert nicht richtig

+(void)makeCallToSelectedContact:(NSString*)phoneNo{ 

    NSMutableString *phoneNumber = [NSMutableString stringWithString:phoneNo]; 

    [phoneNumber replaceOccurrencesOfString:@" " 
           withString:@"" 
            options:NSLiteralSearch 
             range:NSMakeRange(0, [phoneNumber length])]; 
    [phoneNumber replaceOccurrencesOfString:@"(" 
           withString:@"" 
            options:NSLiteralSearch 
             range:NSMakeRange(0, [phoneNumber length])]; 
    [phoneNumber replaceOccurrencesOfString:@")" 
           withString:@"" 
            options:NSLiteralSearch 
             range:NSMakeRange(0, [phoneNumber length])]; 

    NSLog(@"phoneNumber => %@",phoneNumber); 
    if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel:+%@",phoneNumber]]]) { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel:+%@",phoneNumber]]]; 
    } 
    else { 
     NSLog(@"Unable to open"); 
     [self showAlertWithTitle:@"Alert" andMessage:@"This Device Doesn't Support Call Functionality"]; 
    } 
} 

Lets sagen, wenn ich ph nicht wie +91 1234567890 haben, dann wird es die Nummer richtig nennen. Aber wenn ich eine Nummer ohne + & Ländercode wie 1234567890 habe, dann wird sie in +12 34567890 umgewandelt, was eine falsche Telefonnummer ist. Hier ist mein Konsolenprotokoll

2012-04-05 19:13:37.960 Search[22453:11003] phoneNumber => +911234567890 

2012-04-05 19:13:47.928 Search[22453:11003] phoneNumber => 1234567890 

Was ich vermisse? Jede Art von Hilfe wird geschätzt.

Antwort

1

Sie fügen die '+', wenn Sie die URL erstellen - Look:

if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel:+%@",phoneNumber]]]) { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel:+%@",phoneNumber]]]; 
}