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

标签 ios iphone swift ytplayerview ytplayer

我正在构建一个应用程序,其中我将有一个名为 Watch VideoUIButton 点击按钮,YouTube 应用程序/网络应该使用相应的 youtube ID 打开.

我看到了在 iOS 中嵌入 YouTube 视频的代码,但我没有找到任何此类内容。任何想法都会非常有帮助。

最佳答案

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

不要忘记将 youtube 方案添加到 Info.plist 中的 LSApplicationQueriesSchemes(否则 canOpenURL 将始终失败):

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

旁注:

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

关于ios - 如何在 iOS 中单击按钮打开带有 YouTube ID 的 YouTube 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41542409/

相关文章:

iOS 应用程序 : access SMS and Call log

objective-c - 为什么 performSegueWithIdentifier 在 vi​​ewDidLoad 中不起作用?

ios - 在帧 ios 内移动图像

ios - UIScrollView 中的 UIView 不滚动

ios - 在 CGMutablePath 中添加多个排除路径

ios - 如何使用 IBAction 将数据写入 Firebase

ios - pubnub单 channel 最大订阅数

iphone - UITableView setContentInset 大值动画缓慢

ios - 与 CoreData : how to? 进行乘法(聚合)

iphone - 从 iPhone 到 Mac 编程