web-dev-qa-db-fra.com

iOS ouvert YouTube App avec requête (schémas d'URL)

Existe-t-il un schéma d'URL permettant d'ouvrir l'application YouTube iOS avec une requête de recherche spécifiée?

J'ai essayé:

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

Mais cela ouvrira Safari au lieu de l'application YouTube.

12
1b0t

Vous ne pouvez pas utiliser ce http://www.youtube.com/results?search_query=foo pour ouvrir une application youtube. Si vous utilisez l'URL ci-dessus, le safari sera ouvert au lieu de l'application youtube.

Il n'y a que trois URLSchemes disponibles pour ouvrir l'application youtube:

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

Référence: iPhoneURLScheme

20
Midhun MP

cela fonctionne très bien dans iOS 9

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

12
Vaibhav Saran

Mise à jour pour Swift 3 et iOS 10+

OK, il y a deux étapes faciles pour y parvenir:

Tout d'abord, vous devez modifier Info.plist pour lister Youtube avec LSApplicationQueriesSchemes. Ouvrez simplement Info.plist en tant que code source et collez ceci:

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

Après cela, vous pouvez ouvrir n’importe quelle URL youtube dans l’application Youtube en remplaçant simplement https:// par youtube://. Voici un code complet, vous pouvez lier ce code à n’importe quel bouton de votre action:

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

}
7
Ibrahim

Si un schéma d'URL de recherche d'application YouTube est pris en charge, il n'est pas bien documenté (et sera probablement fragile). Vous pouvez ouvrir l'application YouTube directement à l'aide de:

youtube://

Vous pouvez lire des vidéos spécifiques en utilisant:

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

J'abordais ce problème en interrogeant directement la liste et en affichant les résultats dans une vue Web. Idéalement, vous ne voulez pas reproduire l'application YouTube (il y en a déjà une sur l'App Store), il serait donc préférable de trouver l'identifiant vidéo spécifique sur une autre route.

3
David Doyle

Il peut être ouvert en utilisant 

vnd.youtube:///

(notez que trois barres obliques sont définies)

3
Aldo Aguirre

Si vous souhaitez ouvrir l'application YouTube iOS avec une requête de recherche, utilisez cette syntaxe:

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

(remplacez search%20query par des termes de recherche sans guillemets)

Remarque: la syntaxe ci-dessus comporte trois barres obliques au lieu de deux.

(Fonctionne à partir de 20160420)

2
Brett

Pour iOS 11 cela devrait fonctionner:

youtube://www.youtube.com/<channel-id>
2
Musa almatri

Vous pouvez ouvrir l'application YouTube iOS de cette manière:

Vidéos

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

Utilisateurs et chaînes

Pas possible pour le moment. (Source: tests approfondis.)

Listes de lecture

Inconnu/Non testé

2
Jay

Selon la dernière documentation destinée aux développeurs Apple, YouTube ne peut pas être ouvert à l'aide du schéma youtube: // url, mais doit être conforme aux indications du lien ci-dessous.

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

1
Sridhar S

Pour ouvrir un lien Youtube qui s'ouvre dans l'application, à partir d'une page Web (safari ou n'importe quel navigateur), et que cette procédure fonctionne également à partir d'une fonction javascript, vous devez envoyer une requête de formulaire appropriée à Youtube:

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

Ceci est pour les sites mobiles. Pour les navigateurs normaux, changez "' https://m.youtube.com/watch?v= " en "' https://youtube.com/watch?v= "

Si vous avez besoin d’un lien ou d’un bouton, changez simplement le type de saisie en bouton.

EDIT: cette méthode ne fonctionne plus sur iphone depuis les dernières modifications IOS et YT. Toujours à la recherche d'une méthode pour ouvrir l'application Youtube à partir d'un script, sans que le navigateur ne le demande, oui ou non.

0
OhioStateB