I have webview displaying youtube video:
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)
}
HTML link looks like this:
<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>
That works perfectly, but i want also to let user to watch it on the youtube app. Is it possible to create link in webview that launch YouTube app (if installed on device) ?
Any help appreciated.
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)
You can use this:
UIApplication.sharedApplication().openURL("youtube://XXXXXX")
where XXXXXX is the code of the video in youtube.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With