canOpenUrl - Diese App darf kein Schema-Infragramm abfragen

93

Ich versuche, die Instagram-URL zu meiner App in iOS9 hinzuzufügen, erhalte jedoch die folgende Warnung:

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

LSApplicationQueriesSchemesIch habe jedoch Folgendes zu dem in meinem hinzugefügt info.plist;

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

Jede Hilfe wird sehr geschätzt?

BEARBEITEN 1

Dies ist der Code, mit dem ich instagram öffne:

 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");
}

basierend auf diesem Beispiel.

DevC
quelle
5
Liegt es daran, dass Sie instragram anstelle von instagram geschrieben haben?
James P
2
@ JamesP schlägt sich ins Gesicht, wie habe ich das vermisst, aber ich habe es behoben und das Problem bleibt weiterhin bestehen.
DevC

Antworten:

203
  1. Ihr LSApplicationQueriesSchemesEintrag sollte nur Schemata haben. Der zweite Eintrag hat keinen Sinn.

    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>instagram</string>
    </array>
  2. Lesen Sie den Fehler. Sie versuchen, die URL mit einem Tippfehler im Schema zu öffnen. Korrigieren Sie Ihren Verweis instragramin Ihrem Anruf an canOpenURL:.

rmaddy
quelle
1
Das ist peinlich, ich habe die Fehlermeldung ungefähr 30 Mal gelesen und sie immer wieder überprüft. Der Fehler ist jetzt weg. Der erste Punkt ist auch richtig, der zweite Eintrag war nicht erforderlich.
DevC
14
Es ist, als würde man versuchen, seine eigene Zeitung zu prüfen. Es funktioniert nicht. Sie sehen immer wieder, was Sie erwarten, nicht was es wirklich ist.
rmaddy
6

Nur setzen <string>instagram</string>. Es ist nicht der vollständige Pfad erforderlich, sondern die Basis der Schema-URL.

Andr3a88
quelle
5

Für Facebook, wer braucht:

<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 Malachi
quelle
5
Das hat nichts mit der Frage zu tun.
rmaddy
Dies beantwortet nicht die eigentliche Frage
Gulfam Khan
2
Facebook besitzt Instgramm .. Husten
Ezos