19

是否有 URL Scheme 可以使用指定的搜索查询打开 YouTube iOS 应用?

我试过:

NSString *stringURL = @"http://www.youtube.com/results?search_query=foo";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];

但这将打开 Safari 而不是 YouTube 应用程序。

4

10 回答 10

23

您不能使用它http://www.youtube.com/results?search_query=foo来打开 youtube 应用程序。如果您使用上面的 url,它将打开 safari 而不是 youtube 应用程序。

只有三个 URLSchemes 可用于打开 youtube 应用程序:

  • http://www.youtube.com/watch?v=VIDEO_IDENTIFIER
  • http://www.youtube.com/v/VIDEO_IDENTIFIER
  • youtube://

参考:iPhoneURLScheme

于 2013-09-09T12:23:06.427 回答
16

这在 iOS 9 中运行良好

youtube://www.youtube.com/channel/<channel-id>

于 2015-09-28T12:30:09.677 回答
8

Swift 3 和 iOS 10+ 的更新

好的,有两个简单的步骤可以实现:

首先,您必须修改以Info.plist列出. 只需作为源代码打开,然后粘贴:YoutubeLSApplicationQueriesSchemesInfo.plist

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

之后,您可以在 Youtube 应用程序中打开任何 youtube URL,只需替换https://youtube://. 这是一个完整的代码,您可以将此代码链接到您拥有的任何按钮作为操作:

@IBAction func YoutubeAction() {

    let YoutubeQuery =  "Your Query"
    let escapedYoutubeQuery = YoutubeQuery.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
    let appURL = NSURL(string: "youtube://www.youtube.com/results?search_query=\(escapedYoutubeQuery!)")!
    let webURL = NSURL(string: "https://www.youtube.com/results?search_query=\(escapedYoutubeQuery!)")!
    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)
    }

}
于 2017-03-16T06:22:48.313 回答
4

它可以使用打开

vnd.youtube:///

(注意设置了三个斜线)

于 2015-07-03T18:24:57.570 回答
3

如果存在受支持的 YouTube 应用程序搜索 URL 方案,则它没有很好的文档记录(并且可能很脆弱)。您可以使用以下方法直接打开 YouTube 应用程序本身:

youtube://

您可以使用以下方式播放特定视频:

http://www.youtube.com/watch?v=VIDEO_IDENTIFIER

我会通过直接查询列表来解决这个问题,或者在 web 视图中显示结果。理想情况下,您不想复制 YouTube 应用(毕竟应用商店中已经有一个),因此最好通过其他途径找到特定的视频标识符。

于 2013-09-09T10:00:03.523 回答
3

如果您想使用搜索查询打开 YouTube iOS 应用,请使用以下语法:

youtube:///results?q=search%20query

(替换search%20query为不带引号的搜索词)

注意:上面的语法有三个斜杠而不是两个。

(截至 20160420 的作品)

于 2014-12-23T01:51:12.933 回答
2

您可以通过以下方式打开 YouTube iOS 应用:

视频

<a href="youtube://dQw4w9WgXcQ">Open in YouTube</a>
<a href="youtube://watch?v=dQw4w9WgXcQ">Open in YouTube</a>

用户和渠道

目前不可能。(来源:广泛的测试。)

播放列表

未知/未经测试

于 2014-10-10T04:00:12.160 回答
2

对于iOS 11,这应该有效:

youtube://www.youtube.com/<channel-id>
于 2017-07-25T07:28:05.767 回答
1

根据最新的 Apple 开发者文档,无法使用 youtube:// url 方案打开 youtube,而应如以下链接中所述。

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

于 2015-03-25T15:37:48.723 回答
0

要从网页(Safari 或任何浏览器)打开在应用程序中打开的 Youtube 链接,并且这也适用于从 javascript 函数打开,您需要向 Youtube 发送正确的表单查询:

<form id='form' action='https://m.youtube.com/watch?v=' method='get'>
<input type='hidden' name='v' id='v' value='XgQrzkvvOO4'>
</form>

这适用于移动网站。对于普通浏览器,将“' https://m.youtube.com/watch?v= ”更改为“' https://youtube.com/watch?v=

如果您需要链接或按钮,只需将输入类型更改为按钮。

编辑:此方法不再适用于 iphone,因为最新更改 IOS 和 YT。仍在寻找从脚本中打开 Youtube APP 的方法,而不会被浏览器询问是或否。

于 2018-11-08T08:16:40.733 回答