Attualmente sto aggiornando una delle mie app per essere compatibile con iOS9 e ho problemi con la condivisione della funzione Instagram. Sto usando gli hook di Instagram come indicato sul sito degli sviluppatori: (https://instagram.com/developer/mobile-sharing/iphone-hooks/)iOS9 - Condivisione su Instagram (con ganci) non funzionante
L'immagine che desidero condividere viene generata correttamente, con il suffisso .igo e la funzionalità funziona ancora come previsto su iOS8. Sembra aver rotto con la nuova versione di iOS.
Ecco il codice per la condivisione di Instagram, utilizzando l'UIDocumentInteractionController:
NSURL *instagramURL = [NSURL URLWithString:@"instagram://app"];
if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
//convert image into .png format.
NSData *imageData = UIImagePNGRepresentation(image);
//create instance of NSFileManager
NSFileManager *fileManager = [NSFileManager defaultManager];
//create an array and store result of our search for the documents directory in it
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//create NSString object, that holds our exact path to the documents directory
NSString *documentsDirectory = [paths objectAtIndex:0];
//add our image to the path
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"insta.igo"]];
//finally save the path (image)
[fileManager createFileAtPath:fullPath contents:imageData attributes:nil];
CGRect rect = CGRectMake(0 ,0 , 0, 0);
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIGraphicsEndImageContext();
NSString *fileNameToSave = [NSString stringWithFormat:@"Documents/insta.igo"];
NSString *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:fileNameToSave];
NSLog(@"jpg path %@",jpgPath);
NSString *newJpgPath = [NSString stringWithFormat:@"file://%@",jpgPath];
NSLog(@"with File path %@",newJpgPath);
NSURL *igImageHookFile = [[NSURL alloc]initFileURLWithPath:newJpgPath];
NSLog(@"url Path %@",igImageHookFile);
self.documentController = [UIDocumentInteractionController interactionControllerWithURL:igImageHookFile];
[self.documentController setDelegate:self];
[self.documentController setUTI:@"com.instagram.exclusivegram"];
[self.documentController presentOpenInMenuFromRect:rect inView:self.view animated:YES];
} else {
NSLog (@"Instagram not found");
}
E 'probabilmente la pena ricordare che ho già configurato i schemi URL nella info.plist come richiesto con i cambiamenti iOS9.
Viene visualizzato UIDocumentInteractionController e l'opzione 'Copia su Instagram'. Premendo questa opzione si giunge al licenziamento del controller, senza che vengano richiamati messaggi di registro o punti di interruzione sul delegato del controller (impostato su self, il controller della vista).
Se qualcuno ha o ha avuto problemi con questo, sarebbe bello sentire i tuoi pensieri, o meglio ancora, come è stato risolto.
Aggiornamento
E 'anche opportuno ricordare, su un dispositivo iOS 8, il controller Interazione documento mostra un 'Apri in Instagram' pulsante. Il dispositivo iOS9 mostra un pulsante "Copia su Instagram".
Avendo lo stesso problema. Sono stato alla ricerca di soluzioni me stesso. – JiuJitsuCoder