iOS使用查询(urlscheme)打开YouTube应用程序

有没有一个URL计划,以指定的search查询打开YouTube的iOS应用程序?

我试过了:

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

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

您无法使用此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

这在iOS 9中工作正常

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

如果有支持的YouTube应用程序searchURLscheme,则没有很好的文档logging(可能会很脆弱)。 您可以直接使用以下方式打开YouTube应用

 youtube:// 

你可以使用以下方式播放特定

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

我会直接通过查询列表来解决这个问题,并在webview中显示结果。 理想情况下,您不希望复制YouTube应用程序(毕竟应用程序商店已经有一个应用程序),所以最好find其他路线的特定video标识符。

它可以打开使用vnd.youtube:/// (注意三个斜线设置)

Swift 3和iOS 10+的更新

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

首先,您必须修改Info.plist以使用LSApplicationQueriesSchemes列出Youtube 。 简单地打开Info.plist作为源代码,并粘贴:

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

之后,您可以通过简单地将https://replace为youtube://来打开Youtube应用程序中的任何YouTubeurl。 下面是一个完整的代码,你可以将这个代码链接到任何你有作为一个行动的button:

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

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

影片

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

用户和渠道

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

播放列表

未知/未经testing

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

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

(用不含引号的search条件replacesearch%20query

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

(作品20160420)

对于iOS 11,这应该工作:

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

根据最新的Apple开发者文档,youtube不能用youtube:// url scheme来打开,而应该像下面的链接中提到的一样。

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