canOpenUrl - Este aplicativo não tem permissão para consultar o instragrama do esquema

93

Estou tentando adicionar o url do Instagram ao meu aplicativo no iOS9, mas estou recebendo o seguinte aviso:

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

No entanto, eu adicionei o seguinte ao LSApplicationQueriesSchemesmeu info.plist;

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

Qualquer ajuda é muito apreciada?

EDITAR 1

Este é o código que estou usando para abrir o 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");
}

com base neste exemplo.

DevC
fonte
5
É porque você escreveu instragram em vez de instagram?
James P
2
@JamesP se dá um tapa na cara como eu perdi isso, mas eu consertei e o problema ainda persiste.
DevC

Respostas:

203
  1. Sua LSApplicationQueriesSchemesentrada deve ter apenas esquemas. Não há sentido para a segunda entrada.

    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>instagram</string>
    </array>
  2. Leia o erro. Você está tentando abrir o URL com um erro de digitação no esquema. Corrija sua referência a instragramem sua chamada para canOpenURL:.

rmaddy
fonte
1
Isso é constrangedor, eu li a mensagem de erro cerca de 30 vezes e continuei olhando. O erro agora desapareceu. O primeiro ponto também está correto, não houve necessidade da segunda entrada.
DevC
14
É como tentar revisar seu próprio artigo. Não funciona. Você continua vendo o que espera que seja, não o que realmente é.
rmaddy
6

Coloque apenas <string>instagram</string>. Não é necessário o caminho completo, mas sim a base da url do esquema.

Andr3a88
fonte
5

Para o Facebook, quem precisa de:

<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
fonte
5
Isso não tem nada a ver com a questão.
rmaddy
isso não responde à pergunta real
Gulfam Khan
2
facebook possui instgram .. tosse
Ezos