Launch YouTube App in iOS device
Update for Swift 3 and iOS 10+
OK, there are two easy steps to achieve this:
First, you have to modify Info.plist
to list Youtube
with LSApplicationQueriesSchemes
. Simply open Info.plist
as a Source Code, and paste this:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>youtube</string>
</array>
After that, you can open any Youtube URL inside Youtube application by simply substituting https://
with youtube://
. Here is a complete code, you can link this code to any button you have as an Action:
@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.shared
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)
}
}
You can use this:
UIApplication.sharedApplication().openURL("youtube://XXXXXX")
where XXXXXX is the code of the video in youtube.
Since Youtube isn't pre-installed on the phone, it's a good idea to safeguard this by testing the URL then falling back to using safari if they don't have youtube installed.
Add this key to your info.plist
<key>LSApplicationQueriesSchemes</key>
<array>
<string>youtube</string>
</array>
Then this is the code that will fallback to safari if the Youtube app isn't installed.
let youtubeId = "vklj235nlw"
var url = URL(string:"youtube://\(youtubeId)")!
if !UIApplication.shared.canOpenURL(url) {
url = URL(string:"http://www.youtube.com/watch?v=\(youtubeId)")!
}
UIApplication.shared.open(url, options: [:], completionHandler: nil)