3

Gibt es einen Rückruf, um zu identifizieren, wenn der Benutzer auf Ruft im Popup, das kommt, wenn wir auf eine Nummer in einer Textansicht klicken?Wie man eine Telefonnummer abfängt Klicken Sie auf (Anruf-Schaltfläche) auf Link in UITextView?

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

Die oben erwähnte Funktion wird mir erkennen helfen, dass ein Link in einem UITextView geklickt wurde, muß ein besonderer Rückruf ist es zu erkennen, ob Anruf geklickt wird oder Abbrechen geklickt wird

Antwort

3

die delegierte Methode verwenden:

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

nicht vergessen, die Textview Delegierten zu verbinden.

self.textView.delegate = self 

Dann können Sie einen benutzerdefinierten UIAlertController hinzufügen oder abbrechen.

Edit:

Dies ist der vollständige Code:

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, preferredStyle: .Alert) 
     alert.addAction(UIAlertAction(title: "Call", style: .Default, handler: { (alert) in 
      if UIApplication.sharedApplication().canOpenURL(URL) { 
       UIApplication.sharedApplication().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 
} 

Eine letzte Sache ,, in Ihrem info.plist add:

<key>LSApplicationQueriesSchemes</key> 
<array> 
<string>tel</string> 
</array> 
Verwandte Themen