Cómo interceptar un número de teléfono haga clic (button de llamada) en el enlace en UITextView?

¿Hay una callback para identificar cuándo el usuario hace clic en Llamar en la window emergente que aparece cuando hacemos clic en un número en una vista de text?

func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool

La function mencionada anteriormente me ayudará a identificar que se ha hecho clic en un enlace en UITextView, mientras que hay una callback específica para identificar si se hace clic en Llamar o se hace clic en Cancelar

Utilice el método delegado:

 func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool { print("Phone \(URL)") return false } 

no olvides conectar el delegado textView.

 self.textView.delegate = self 

Luego puede agregar un UIAlertController personalizado para llamar o cancelar.

Editar:

Este es el código completo:

 func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool { if (URL.scheme == "tel"){ let phoneNumber = URL.absoluteString.stringByReplacingOccurrencesOfString("tel:", withString: "") let alert = UIAlertController(title: phoneNumber, message: nil, prefernetworkingStyle: .Alert) alert.addAction(UIAlertAction(title: "Call", style: .Default, handler: { (alert) in if UIApplication.shanetworkingApplication().canOpenURL(URL) { UIApplication.shanetworkingApplication().openURL(URL) } })) alert.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: { (alert) in print("User Canceld") })) presentViewController(alert, animated: true, completion: nil) return false } return true } 

Una última cosa, en su info.plist agregue:

 <key>LSApplicationQueriesSchemes</key> <array> <string>tel</string> </array> 
    Intereting Posts