verificar verificacion telefono seguida puedo numero llega escribe enviaron demasiados cuenta contraseña confianza como codigos codigo cambiar apple iphone objective-c uiwebview

iphone - verificacion - Volver al comportamiento de la aplicación después de una llamada telefónica diferente en código nativo que UIWebView



se enviaron demasiados codigos iphone (4)

  1. El comportamiento difiere entre llamadas -[UIApplication openURL:] con un tel: URL, y haciendo clic en un enlace a la misma URL en un UIWebView .

  2. Usar un UIWebView lugar de un UILabel puede tener algunas desventajas, pero no es necesario que UIWebView para obtener su comportamiento de manejo de URL de tel . En su lugar, simplemente cargue una solicitud de tel URL en una instancia de UIWebView sin agregarla a su jerarquía de vistas.

Por ejemplo:

#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface PhoneCaller : NSObject { @private UIWebView *webview; } - (void)callTelURL:(NSURL *)url; @end @implementation - (id)init { self = [super init]; if (self) { webview = [[UIWebView alloc] init]; } return self; } - (void)callTelURL:(NSURL *)url { [webview loadRequest:[NSURLRequest requestWithURL:url]]; } - (void)dealloc { [webview release]; [super dealloc]; } @end

De acuerdo con la documentación de Apple , para hacer llamadas desde mi aplicación, necesito implementar los siguientes protocolos:

Enlace HTML:

<a href="tel:1-408-555-5555">1-408-555-5555</a>

Cadena de URL de aplicación nativa:

tel:1-408-555-5555

Sin embargo, después de completar una llamada telefónica iniciada desde un enlace HTML dentro de UIWebView, me redirigen directamente a mi aplicación. Pero al completar una llamada telefónica hecha desde una cadena de URL de aplicación nativa, mi iPhone permanece en la aplicación telefónica habitual del iPhone, y si quiero regresar a mi aplicación, tengo que hacerlo manualmente.

Por lo que puedo decir al leer lo que otros han dicho, no hay forma de cambiar este comportamiento.

Aquí está mi pregunta:

  1. ¿Es cierto que es imposible regresar a una aplicación después de realizar una llamada desde una cadena de URL de aplicación nativa?
  2. ¿Habría alguna desventaja al implementar UIWebView en lugar de UILabel en situaciones en las que realmente quería que el usuario fuera redireccionado a mi aplicación después de completar una llamada telefónica?

El método de Eric''s Brotto todavía funciona en 5.1. Debe agregar la vista web a la vista principal antes de loadRequest, como esta:

NSString *cleanedString = [[phoneNumber componentsSeparatedByCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"0123456789-+()"] invertedSet]] componentsJoinedByString:@""]; NSString *escapedPhoneNumber = [cleanedString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *telURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel://%@", escapedPhoneNumber]]; UIWebView *mCallWebview = [[UIWebView alloc] init] ; [self.view addSubview:mCallWebview]; [mCallWebview loadRequest:[NSURLRequest requestWithURL:telURL]];

(Agregué un limpiador de número de teléfono, para eliminar cualquier carácter no numérico que bloquee este método)


La forma más simple parece ser:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt:0123456789"]];

Recibirá un aviso y su aplicación recuperará el foco una vez que finalice la llamada.


Permíteme simplificar un poco. Todo lo que necesitas es este pequeño fragmento:

UIWebView *callWebview = [[UIWebView alloc] init]; NSURL *telURL = [NSURL URLWithString:@"tel:number-to-call"]; [callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];

que obtuve here .

* Recientemente probado con éxito en iOS 5.0.