Lanzar aplicación de YouTube en dispositivo iOS

Tengo una vista web que muestra videos de YouTube:

class ViewController: UIViewController { @IBOutlet var webView: UIWebView! override func viewDidLoad() { super.viewDidLoad() let url = NSURL(string: "http://www.cast.html") let request = NSURLRequest(URL: url!) webView.loadRequest(request) } 

El enlace HTML se ve así:

 <div class="h_iframe"> <iframe webkit-playsinline height="480" width="2" src="https://www.youtube.com/embed/ru1_lI84Wkw?feature=player_detailpage&playsinline=1" frameborder="0" allowfullscreen></iframe></div> 

Eso funciona perfectamente, pero también quiero que el usuario lo vea en la aplicación de YouTube. ¿Es posible crear un enlace en la vista web que inicie la aplicación de YouTube (si está instalado en el dispositivo)?

Cualquier ayuda apreciada.

Puedes usar esto:

 UIApplication.shanetworkingApplication().openURL("youtube://XXXXXX") 

donde XXXXXX es el código del video en YouTube.

Dado que Youtube no está preinstalado en el teléfono, es una buena idea salvasave esto probando la URL y luego volviendo a utilizar safari si no tienen instalado YouTube.

Agregue esta key a su info.plist

 <key>LSApplicationQueriesSchemes</key> <array> <string>youtube</string> </array> 

Entonces este es el código que retrocederá a Safari si la aplicación de YouTube no está instalada.

  let youtubeId = "vklj235nlw" var url = URL(string:"youtube://\(youtubeId)")! if !UIApplication.shanetworking.canOpenURL(url) { url = URL(string:"http://www.youtube.com/watch?v=\(youtubeId)")! } UIApplication.shanetworking.open(url, options: [:], completionHandler: nil) 

Actualización para Swift 3 y iOS 10+

OK, hay dos pasos sencillos para lograr esto:

Primero, debe modificar Info.plist para enumerar Youtube con LSApplicationQueriesSchemes . Simplemente abra Info.plist como código fuente y péguelo:

 <key>LSApplicationQueriesSchemes</key> <array> <string>youtube</string> </array> 

Después de eso, puedes abrir cualquier URL de YouTube dentro de la aplicación de YouTube simplemente sustituyendo https:// con youtube:// . Aquí hay un código completo, puede vincular este código a cualquier button que tenga como Acción:

 @IBAction func YoutubeAction() { let YoutubeID = "Ktync4j_nmA" // Your Youtube ID here let appURL = NSURL(string: "youtube://www.youtube.com/watch?v=\(YoutubeID)")! let webURL = NSURL(string: "https://www.youtube.com/watch?v=\(YoutubeID)")! let application = UIApplication.shanetworking if application.canOpenURL(appURL as URL) { application.open(appURL as URL) } else { // if Youtube app is not installed, open URL inside Safari application.open(webURL as URL) } } 

Swift 3

UIApplication.shanetworking.openURL(URL(string: "http://youtube.com")!)

si la aplicación de YouTube no está instalada, se abre Safari (página web)