Passer un appel téléphonique dans une application iOS
J'ai du code qui tente de faire un appel dans une application, mais il ne semble pas fonctionner:
UIApplication *myApp = [UIApplication sharedApplication];
NSString *theCall = [NSString stringWithFormat:@"tel://%@",phone];
NSLog(@"making call with %@",theCall);
[myApp openURL:[NSURL URLWithString:theCall]];
Parfois, la variable phone
est quelque chose comme @"(102) 222-2222"
. Comment puis-je passer un appel avec un numéro de téléphone comme celui-ci? Dois-je en extraire manuellement les chiffres et me débarrasser de toute ponctuation supplémentaire?
Ouaip. Vous devez les retirer vous-même. Ou vous pouvez utiliser l'extrait ci-dessous ...
NSString *cleanedString = [[phoneNumber componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789-+()"] invertedSet]] componentsJoinedByString:@""];
NSURL *telURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel:%@", cleanedString]];
Remarque: vous pourriez être tenté d'utiliser -stringByTrimmingCharactersInSet:
, mais celui-ci ne supprime que les caractères au début et à la fin de la chaîne, pas s'ils apparaissent au milieu.
Pour revenir à l'application d'origine, vous pouvez utiliser telprompt: // au lieu de tel: // - L'invite tell invitera l'utilisateur en premier, mais lorsque l'appel sera terminé, il reviendra à votre application:
NSString *phoneNumber = [@"telprompt://" stringByAppendingString:mymobileNO.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
juste une mise à jour sur la réponse ci-dessus.
Voici une méthode simple qui peut être utilisée pour passer un appel et revenir à l'application une fois l'appel terminé.
Ajoutez ce qui suit à votre fichier .m
- (void) dialNumber:(NSString*) number{
number = [@"telprompt://" stringByAppendingString:number];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:number]];
}
Ajoutez ensuite le code suivant où vous souhaitez effectuer l'appel:
[self dialNumber:@"5031234567"];