canOpenUrl - Cette application n'est pas autorisée à interroger l'instragram du schéma

93

J'essaie d'ajouter l'URL d'Instagram à mon application dans iOS9, mais je reçois l'avertissement suivant:

-canOpenURL: failed for URL: "instragram://media?id=MEDIA_ID" - error: "This app is not allowed to query for scheme instragram"

Cependant, j'ai ajouté ce qui suit au LSApplicationQueriesSchemesdans mon info.plist;

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>instagram</string>
    <string>instagram://media?id=MEDIA_ID</string>//this one seems to be the issue
</array>

Toute aide est grandement appréciée?

MODIFIER 1

Voici le code que j'utilise pour ouvrir instagram:

 NSURL * instagramURL = [NSURL URLWithString:@"instragram://media?id=MEDIA_ID"];//edit: note, to anyone copy pasting this code, please notice the typo OP has in the url, that being "instragram" instead of "instagram". This typo was discovered after this StackOverflow question was posted.
if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
    //do stuff
}
else{
    NSLog(@"NO instgram found");
}

basé sur cet exemple.

DevC
la source
5
Est-ce parce que vous avez écrit instragram au lieu d'Instagram?
James P
2
@JamesP se gifle comment ai-je manqué cela, mais je l'ai résolu et le problème persiste.
DevC

Réponses:

203
  1. Votre LSApplicationQueriesSchemesentrée ne doit avoir que des schémas. Il n'y a aucun intérêt à la deuxième entrée.

    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>instagram</string>
    </array>
    
  2. Lisez l'erreur. Vous essayez d'ouvrir l'URL avec une faute de frappe dans le schéma. Fixez votre référence à instragramdans votre appel à canOpenURL:.

rmaddy
la source
1
C'est embarrassant, j'ai lu le message d'erreur environ 30 fois et j'ai continué à le regarder. L'erreur a maintenant disparu. Le premier point est également correct, il n'y avait pas besoin de la deuxième entrée.
DevC
15
C'est comme essayer de relire votre propre article. Ça ne marche pas. Vous continuez à voir ce que vous attendez que ce soit, pas ce que c'est vraiment.
rmaddy
6

Mettez seulement <string>instagram</string>. Ce n'est pas nécessaire le chemin complet mais la base de l'url du schéma.

Andr3a88
la source
5

Pour Facebook qui en a besoin:

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>fbauth</string>
        <string>fbauth2</string>
        <string>fb-messenger-api20140430</string>
        <string>fbapi20130214</string>
        <string>fbapi20130410</string>
        <string>fbapi20130702</string>
        <string>fbapi20131010</string>
        <string>fbapi20131219</string>
        <string>fbapi20140410</string>
        <string>fbapi20140116</string>
        <string>fbapi20150313</string>
        <string>fbapi20150629</string>
        <string>fbshareextension</string>
    </array>
Ofir Malachie
la source
5
Cela n'a rien à voir avec la question.
rmaddy le
cela ne répond pas à la vraie question
Gulfam Khan
2
facebook possède instgram .. toux
Ezos