2014-11-09 14 views
5

Quando uso UIDocumentInteractionController per consentire agli utenti di condividere tramite Instagram, funziona, viene visualizzata l'opzione per "Apri con" e "Instagram" come una delle opzioni ... il problema è che si visualizza anche molte altre applicazioni come "Facebook" e "Twitter" ...UIDocumentInteractionController condivide tramite Instagram (e SOLO Instagram)


c'è un modo per farlo solo dare la possibilità di apertura in app Instagram?


Instagram afferma che ci sia un modo per fare questo: http://instagram.com/developer/iphone-hooks/ ma parlare di questo:
"Alternatively, if you want to show only Instagram in the application list (instead of Instagram plus any other public/jpeg-conforming apps) you can specify the extension class igo, which is of type com.instagram.exclusivegram."

ma onestamente non hanno idea di cosa significa questa parte, " extension class igo"


mio codice:

UIImage *imageToUse = [UIImage imageNamed:@"imageToShare.png"]; 
NSString *documentDirectory=[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; 
NSString *saveImagePath=[documentDirectory stringByAppendingPathComponent:@"Image.ig"]; 
NSData *imageData=UIImagePNGRepresentation(imageToUse); 
[imageData writeToFile:saveImagePath atomically:YES]; 
NSURL *imageURL=[NSURL fileURLWithPath:saveImagePath]; 
docController = [UIDocumentInteractionController interactionControllerWithURL:imageURL]; 
docController.delegate = self; 
docController.annotation = [NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"This is the users caption that will be displayed in Instagram"], @"InstagramCaption", nil]; 
docController.UTI = @"com.instagram.exclusivegram"; 
[docController presentOpenInMenuFromRect:CGRectMake(1, 1, 1, 1) inView:self.view animated:YES]; 

+0

mostra questo errore - *** Terminazione dell'app a causa di eccezione non rilevata 'NSInternalInconsistencyException', motivo: UIDocumentInteractionController è andato via prematuramente! ios 10.3 – Sushobhit

risposta

10

risulta ottenere il controller Doc aperto solo in Instagram è sufficiente salvare il png o jpg in formato ".igo" tipo di file di estensione, (forse sta per Instagram-Only?)



Modificata la terza riga di codice nel mio codice per leggere questo, invece:

NSString *saveImagePath=[documentDirectory stringByAppendingPathComponent:@"Image.igo"]; 

(Con "IGO")



e poi ha funzionato! :)

+1

Sapete come rimuovere l'opzione "save to dropbox" con i file * .igo? – alexburtnik

+5

Sembra che le persone brillanti di dropbox abbiano deciso di includere i file .igo nella loro app per chissà quale motivo, quindi ora hanno infranto la funzione solo su instagram per tutti gli altri. #ThanksDropBox –

+1

.igo non sembra funzionare in iOS9, restituisce comunque molte opzioni. – DevC