iOS打开带有查询的YouTube应用程序(网址方案)

时间:2013-09-09 09:45:45

标签: ios search youtube

是否有使用指定搜索查询打开YouTube iOS应用的网址方案?

我试过了:

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

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

10 个答案:

答案 0 :(得分:20)

您无法使用此http://www.youtube.com/results?search_query=foo打开YouTube应用。如果你使用上面的网址,它将打开Safari而不是youtube app。

只有三个URLSchemes可用于打开youtube app:

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

参考:iPhoneURLScheme

答案 1 :(得分:13)

这在iOS 9中运行良好

  

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

答案 2 :(得分:7)

  

Swift 3和iOS 10 +的更新

好的,有两个简单的步骤来实现这一目标:

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

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

之后,您只需将https://替换为youtube://即可在Youtube应用程序中打开任何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)
    }

}

答案 3 :(得分:3)

如果支持的YouTube应用程序搜索URL方案,则没有详细记录(并且可能很脆弱)。您可以使用以下方式直接打开YouTube应用:

youtube://

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

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

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

答案 4 :(得分:3)

可以使用

打开
vnd.youtube:///

(注意设置了三个斜杠)

答案 5 :(得分:2)

您可以这种方式打开YouTube iOS应用:

<强>画

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

用户和频道

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

<强>播放列表

未知/未测试

答案 6 :(得分:2)

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

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

(用不带引号的搜索字词替换search%20query

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

(自20160420起作业)

答案 7 :(得分:2)

对于 iOS 11 ,这应该有效:

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

答案 8 :(得分:1)

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

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

答案 9 :(得分:0)

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

maillist = ["john.doe@dom", "john2.doe",    "john3.doe.e","john4.doe.extern@dom"]

for i in range(len(maillist)): 
    if "@" not in maillist[i]:
        if maillist[i][-2:]== ".e": 
            maillist[i] += ("xtern@dom") 
        else: 
            maillist[i] +=  "@dom"

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

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

编辑:自IOS和YT的最新更改以来,此方法不再适用于iPhone。仍在寻找一种通过脚本打开Youtube APP的方法,而无需浏览器询问是或否。