【问题标题】:YouTube URL Scheme tvOSYouTube URL 方案 tvOS
【发布时间】:2016-04-01 02:14:57
【问题描述】:

我正在尝试使用 URL 方案或 YouTube.com 域从我的应用程序中打开 YouTube 的应用程序,该域可直接在 iOS 设备上打开 YouTube 的应用程序。

这是我试过的代码:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"youtube://results?search_query=trailer+%@",movieTitle]]];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://www.youtube.com/results?search_query=trailer+%@",movieTitle]]];

但似乎没有任何效果。有关如何检索 YouTube tvOS 应用程序的 URL 方案的任何想法?

【问题讨论】:

  • 如果您能够掌握.ipa,您可以查看.plist 以了解URL Scheme 究竟是什么,或者是否有。
  • 拿到ipa是什么意思?
  • .ipa - file extension。如果你能得到这个,你可以解压它并查看.plist
  • 我知道 .ipa 是什么,但是在不越狱的情况下获得 Youtube 的 IPA 并不容易
  • 我不确定您是否可以将 Apple TV 备份到 iTunes,但如果可以的话,您可以获取 .ipa

标签: objective-c youtube url-scheme tvos


【解决方案1】:

在 Apple TV 上,您可以使用此 URL 方案在 YouTube 应用中播放 YouTube 视频:

youtube://watch/video_id

代码示例:

func playVideoInYouTube(_ identifier: String) {

    if let url = URL(string: "youtube://watch/" + identifier),
        UIApplication.shared.canOpenURL(url) {

        UIApplication.shared.open(url, options: [:], completionHandler: nil)
    }
    else {
        // Inform the user about missing YouTube app
    }
}

要使用canOpenURL 方法,您必须将方案添加到密钥LSApplicationQueriesSchemes 下的Info.plist 文件中,作为方案数组的一部分。在 XML 中它看起来像这样:

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

【讨论】:

  • 这非常好并且有效。但是,要真正发挥作用,我想知道我的应用程序是否有办法“知道”视频何时完成播放并因此开始另一个视频?简而言之,如果我的应用有一个 videoid 列表 - 我可以在 YouTube 应用上提示/控制它们吗?
【解决方案2】:

我在 youtube 应用程序中播放 youtube 视频时也遇到了一些问题,但我找到了一种解决方法,我使用 XCDYouTubeKit 库直接在我的应用程序中播放 youtube 视频。到目前为止,它非常易于使用且运行良好。

XCDYouTubeKit:https://github.com/0xced/XCDYouTubeKit

【讨论】:

    【解决方案3】:

    不一定将此视为“正确”答案,但我认为至少在 iOS 上的所有 YouTube 链接都由 http 处理,而不是像 youtube:// 这样的东西。

    来源(看起来是 2015 年 6 月):

    https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/YouTubeLinks/YouTubeLinks.html

    【讨论】:

    • youtube:// 确实在 iOS 上打开了 YouTube 应用程序。 [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"youtube://"]];
    • 是否有任何证据表明该方案支持打开应用程序以外的任何内容?任何类型的深层链接等?
    • 嗯,有点……[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"youtube://www.youtube.com/channel/UC6nSFpj9HTCZ5t-N3Rm3-HA"]];
    • 那个,或者他们希望人们在平台成熟时使用他们自己的应用程序一段时间。不想在早期分裂太多?
    • 很遗憾它不见了。我想知道分发直接访问 youtube 内容并因此破坏其 TOS 的 tvos 应用程序会有多大限制。 stackoverflow.com/questions/32528624/…
    猜你喜欢
    • 2014-04-09
    • 2012-10-13
    • 2018-07-14
    • 1970-01-01
    • 2014-04-09
    • 2017-05-04
    • 1970-01-01
    • 2013-03-17
    • 2014-12-31
    相关资源
    最近更新 更多