2011-05-09 18 views
5

Estoy usando el siguiente código para marcar el número y las pruebas con mi dispositivo. Parece que no es necesaria la confirmación, ¿correcto?El número de marcado en iOS realmente necesita confirmación?

NSURL *url = [NSURL URLWithString:@"tel://12345678"]; 
[[UIApplication sharedApplication] openURL:url]; 
+0

favor cambia la respuesta aceptada desde la segunda solución es manera más limpia (por ejemplo, la localización del mensaje) y que no se dio cuenta de tiempo :) – yonix

Respuesta

14

No se requiere confirmación y no se muestra cuando se realiza mediante programación. Solo verá la vista de alerta en Safari si se hace clic en un número.

Sin embargo, en mi propia experiencia, creo que es más conveniente para el cliente ver un cuadro de diálogo para que no llamen accidentalmente a alguien. La gente solo toca cosas en las aplicaciones sin pensarlo y eso podría ser malo en este caso.

para imitar lo que Safari no se puede hacer algo como esto:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Call 12345678?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Call", nil]; 
[alert show]; 
alert.tag = 1; 
[alert release]; 

y

-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
    switch (alertView.tag) { 
     case 1: 
      if (buttonIndex == 1) { 
       NSURL *url = [NSURL URLWithString:@"tel://12345678"]; 
       [[UIApplication sharedApplication] openURL:url]; 
      } 
      break; 
     default: 
      break; 
    } 
} 
+0

gracias por la edición Bavarious! – shabbirv

+0

¿Estás seguro de que existe el método '+ [UIAppliction sharedLibrary]'? –

+0

Debe ser '[UIApplication sharedApplication]'. – cduck

18

Una alternativa a la solución adecuada ya publicado, se puede considerar el uso del esquema de telprompt URL, por ejemplo,

NSURL *url = [NSURL [email protected]"telprompt://12345678"]; 
[[UIApplication sharedApplication] openURL:url]; 
+1

+1 Aunque está completamente indocumentado, en mis pruebas parece funcionar hasta iOS 3.0. –

+0

¡Gran solución! +1 Gracias! – dredful

0

confirmación no es necesario pero es deseable, ya que evita la confusión cuando los usuarios se dejan caer en la aplicación de marcación. Una cosa que puede hacer que fue sugerida por otra respuesta es usar telprompt en lugar de simplemente tel. Esto proporcionará el aviso que es necesario a través de un diálogo simple. También tiene un efecto secundario muy agradable al dejar a los usuarios de nuevo en la aplicación de llamada una vez que se completa la llamada telefónica. Estos elementos clave le permiten seguir adelante en lugar de ser expulsados ​​de su aplicación.

Una categoría que explica, además, este código y un proyecto de ejemplo está disponible aquí: http://www.raizlabs.com/dev/2014/04/getting-the-best-behavior-from-phone-call-requests-using-tel-in-an-ios-app/

Cuestiones relacionadas