iOS 使用查询(url 方案)打开 YouTube 应用程序

问题描述 投票:0回答:11

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

我尝试过:

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

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

ios search youtube
11个回答
24
投票

您不能使用此

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

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

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

参考:iPhoneURLScheme


16
投票

这在 iOS 9 中运行良好

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


9
投票

针对 Swift 3 和 iOS 10+ 的更新

好的,有两个简单的步骤即可实现此目的:

首先,您必须修改

Info.plist
以将
Youtube
LSApplicationQueriesSchemes
一起列出。只需打开
Info.plist
作为源代码,然后粘贴以下内容:

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

之后,您只需将

https://
替换为
youtube://
,即可打开 Youtube 应用程序内的任何 YouTube URL。这是完整的代码,您可以将此代码链接到您拥有的任何按钮作为操作:

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

}

4
投票

可以使用

打开它
vnd.youtube:///

(注意设置了三个斜杠)


3
投票

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

youtube://

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

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

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


3
投票

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

视频

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

用户和渠道

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

播放列表

未知/未经测试


3
投票

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

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

(将

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

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

(截至 20160420)


2
投票

对于 iOS 11 这应该有效:

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

1
投票

根据最新的 Apple 开发者文档,无法使用 youtube:// url 方案打开 youtube,而应该像下面的链接中提到的那样。

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


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=

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

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


0
投票

youtube://结果?search_query=

不客气。

© www.soinside.com 2019 - 2024. All rights reserved.