iOS9 - не работает обмен в Instagram (с хуками)
В настоящее время я обновляю одно из моих приложений для совместимости с iOS9, и у меня возникли проблемы с функцией «Поделиться в Instagram». Я использую хуки Instagram, как указано на их сайте разработчика :(https://instagram.com/developer/mobile-sharing/iphone-hooks/)
Изображение, которым я хочу поделиться, генерируется успешно, с суффиксом .igo, и функциональность по-прежнему работает так, как задумано в iOS8. Похоже, что он порвал с новой версией iOS.
Вот код для обмена в Instagram, используя 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");
}
Вероятно, стоит упомянуть, что я уже настроил схемы URL в info.plist в соответствии с изменениями iOS9.
UIDocumentInteractionController действительно появляется, и имеет опцию «Копировать в Instagram». Нажатие на эту опцию просто приводит к отклонению контроллера, при этом никакие сообщения журнала или точки прерывания не вызываются делегату контроллера (установленному в self; контроллер представления).
Если у кого-то есть или были проблемы с этим, было бы здорово услышать ваши мысли, или еще лучше, как это было решено.
Обновить
Также стоит упомянуть, что на устройстве iOS8 контроллер взаимодействия с документами показывает кнопку «Открыть в Instagram». На устройстве iOS9 отображается кнопка «Копировать в Instagram».