[iphone] Apertura tel: enlaces de UIWebView



Answers

Si creó UIWebView en .xib, seleccione UIWebView y verifique sus atributos en Attribute Inspector. El primer encabezado debe ser 'Vista web', y debajo de eso proporciona una lista de casillas de verificación marcadas 'Detección'. Asegúrese de que esté marcado 'Números de teléfono'.

Question

He buscado y buscado, pero parece que no puedo encontrar una solución para este problema.

Por alguna razón, no puedo obtener enlaces 'tel:' para trabajar en UIWebView. Cuando se hace clic en los enlaces, aparece el mensaje "La URL no se puede mostrar". Al hacer clic en el mismo enlace en Safari, funciona perfectamente y marca el número.

Este problema comenzó con iOS 5. Estos enlaces funcionaron perfectamente en iOS 4.2 y 4.3.

No estoy seguro de qué otra información podría ser útil, así que avíseme si necesito aclararla.

¡Gracias!

EDITAR:

Aquí está el código real en uso ...

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    NSURL *url = request.URL;    

    if ([url.scheme isEqualToString:@"tel"]) {
        return YES;
    }

    if (![url.scheme isEqualToString:@"http"] && ![url.scheme isEqualToString:@"https"]) {
        if ([[UIApplication sharedApplication] canOpenURL:url]) {
            [[UIApplication sharedApplication] openURL:url];
            return NO; // Let OS handle this url
        }
    }

    [NSThread detachNewThreadSelector:@selector(startBusy) toTarget:self withObject:nil];
    return YES;
}

Si saco la primera declaración if, el número se marca inmediatamente sin confirmación. Realmente me gustaría que funcione de la manera en que solía hacerlo al dar una alerta, dándole la opción de presionar "Llamar" o "Cancelar" antes de marcar el número.






Links