如何在iOS中点击按钮打开带有YouTube ID的YouTube应用

Man*_*sha 4 iphone ios ytplayer swift ytplayerview

我建立一个应用程序中,我将有一个UIButton命名Watch Video上单击按钮YouTube应用/网络应与相应的YouTube ID被打开.

我看到了在iOS上嵌入YouTube视频的代码,但我没有找到任何类似的东西.任何想法都会非常有用.

Arp*_*gre 9

这样您首先检查是否在设备上安装了YouTube应用程序,然后打开应用程序,否则它将转到Safari.

    let youtubeId = "SxTYjptEzZs"    
    var youtubeUrl = NSURL(string:"youtube://\(youtubeId)")!
    if UIApplication.sharedApplication().canOpenURL(url){
            UIApplication.sharedApplication().openURL(url)
    } else{
            youtubeUrl = NSURL(string:"https://www.youtube.com/watch?v=\(youtubeId)")!
            UIApplication.sharedApplication().openURL(url)
    }
Run Code Online (Sandbox Code Playgroud)


Mil*_*sáľ 9

Swift 4更新(移除强制展开):

func playInYoutube(youtubeId: String) {
    if let youtubeURL = URL(string: "youtube://\(youtubeId)"),
        UIApplication.shared.canOpenURL(youtubeURL) {
        // redirect to app
        UIApplication.shared.open(youtubeURL, options: [:], completionHandler: nil)
    } else if let youtubeURL = URL(string: "https://www.youtube.com/watch?v=\(youtubeId)") {
        // redirect through safari
        UIApplication.shared.open(youtubeURL, options: [:], completionHandler: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

不要忘记在in中添加youtubescheme (否则总是会失败):LSApplicationQueriesSchemesInfo.plistcanOpenURL

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>youtube</string>
</array>
Run Code Online (Sandbox Code Playgroud)

边注:

如果用户之前启用了Safari应用程序打开Youtube应用程序,则不需要通过youtube://方案,第二个 url 也会打开Youtube应用程序。但是,您无法控制它,如果用户拒绝Safari打开Youtube,那么无论如何您都必须直接尝试该方案 - 因此我相信最好使用我上面提到的两个条件分支的解决方案。