canOpenUrl - этому приложению не разрешено запрашивать схему instragram

98

Я пытаюсь добавить URL-адрес Instagram в свое приложение в iOS9, но получаю следующее предупреждение:

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

Однако я добавил LSApplicationQueriesSchemesв свой info.plist:

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

Любая помощь приветствуется?

ИЗМЕНИТЬ 1

Это код, который я использую для открытия 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");
}

на основе этого примера.

DevC
источник
5
Это потому, что вы написали instragram вместо instagram?
Джеймс П.
2
@JamesP бьет себя по лицу, как я это пропустил, но ive исправил это, и проблема все еще остается.
DevC,

Ответы:

210
  1. В вашей LSApplicationQueriesSchemesзаписи должны быть только схемы. Вторая запись не имеет смысла.

    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>instagram</string>
    </array>
    
  2. Прочтите ошибку. Вы пытаетесь открыть URL с опечаткой в ​​схеме. Исправьте ссылку на instragramв своем вызове canOpenURL:.

мэдди
источник
1
Это неудобно, я прочитал сообщение об ошибке около 30 раз и продолжал его просматривать. Ошибка исчезла. Первый пункт тоже правильный, во втором вводе не было необходимости.
DevC,
15
Это все равно, что пытаться проверить свою статью. Не работает. Вы продолжаете видеть то, что ожидаете, а не то, что есть на самом деле.
rmaddy
6

Ставь только <string>instagram</string>. Это не обязательно полный путь, а только основание URL схемы.

Andr3a88
источник
6

Для Facebook, кому нужно:

<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>
Офир Малачи
источник
5
Это не имеет отношения к вопросу.
rmaddy
это не отвечает на настоящий вопрос
Гульфам Хан
2
facebook владеет instgram .. кашель
Эзос