2014-11-17 100 views
5

我的WebView顯示YouTube視頻:啓動YouTube應用在iOS設備

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鏈接看起來是這樣的:

<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> 

完美的作品,但我想也讓用戶觀看它在YouTube上的應用程序。 是否有可能在webview中創建啓動YouTube應用(如果安裝在設備上)的鏈接?

任何幫助表示讚賞。

+0

可能重複[iOS的開放YouTube應用與查詢(URL方案)(http://stackoverflow.com/問題/ 18695537/ios-open-youtube-app-with-query-url-schemes) –

回答

8

您可以使用此:

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

其中XXXXXX是會在YouTube視頻的代碼。

+0

感謝您的幫助! – Jay

12

由於Youtube並未預先安裝在手機上,因此通過測試URL來保護這一點是個好主意,然後在未安裝YouTube的情況下使用Safari瀏覽器進行保護。

添加這關鍵看你的info.plist

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

那麼這是一個將退回到Safari瀏覽器如果沒有安裝YouTube應用的代碼。

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) 
+2

對於iOS 9,您還需要將'info.plist'中設置的'LSApplicationQueriesSchemes'設置爲包含'youtube'的數組http://assetsoverflow.com/questions/40119595/canopenurl-not-working-in-ios- 10 –

0

斯威夫特3

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

如果未安裝YouTube應用程序,它會打開Safari瀏覽器(網頁)

+0

它不起作用。總是打開Safari。 –

+0

@TeodorCiuraru在安裝時會打開YouTube應用程序;我正在使用它顯示電影或系列預告片的製作應用程序。我正在使用iOS 10.2。 –

+0

必須配置另一個設置。我在相同的配置中使用它,它只彈出Safari。 –

2

更新斯威夫特3和iOS 10+

好的,有兩個簡單的步驟來實現這一點:

首先,您必須修改Info.plist以使用LSApplicationQueriesSchemes列出Youtube。只需打開Info.plist的源代碼,並粘貼此:

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

之後,你可以通過簡單地用youtube://https://打開裏面的Youtube應用程序的任何YouTube網址。下面是一個完整的代碼,你可以將此代碼鏈接到你作爲行動的任何按鈕:

@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) 
    } 

} 
相關問題