how desarrollador ios api hook instagram

ios - desarrollador - instagram api web



Instagram gancho com.instagram.exclusivegram no tan exclusivo (3)

Por lo que sé, tiene que usar com.instagram.photo para obtener las opciones generales y com.instagram.exclusivegram para la UTI del controlador de control de documentos si realmente solo desea que Instagram use la extensión correcta .ig para general y .igo para exclusiva Instagram

Por alguna razón, veo múltiples opciones y no solo Instagram como quiero ...

¿Olvidé algo? ¿Se hace de manera diferente?

UIImage *image = (UIImage *)[info valueForKey:UIImagePickerControllerOriginalImage]; NSURL *instagramURL = [NSURL URLWithString:@"instagram://"]; if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) { CGRect rect = CGRectMake(0,0,0,0); CGRect cropRect=CGRectMake(0,0,612,612); // ig voor gewone instagram, igo voor exclusive instagram NSString *jpgPath=[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/temp/photo.igo"]; CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect); UIImage *img = [[UIImage alloc] initWithCGImage:imageRef]; CGImageRelease(imageRef); [UIImageJPEGRepresentation(img, 1.0) writeToFile:jpgPath atomically:YES]; NSURL *igImageHookFile = [[NSURL alloc] initWithString:[[NSString alloc] initWithFormat:@"file://%@",jpgPath]]; // exclusive zou direct in de instagram app moeten openen, helaas toont hij meerdere opties met instagram ergenes helemaal achteraan self.documentInteractionController.UTI = @"com.instagram.exclusivegram"; self.documentInteractionController = [self setupControllerWithURL:igImageHookFile usingDelegate:self]; self.documentInteractionController.annotation = [NSDictionary dictionaryWithObject:@"Alweer een Nostalgie deelnemer! #nostalgiebusje" forKey:@"InstagramCaption"]; [self.documentInteractionController presentOpenInMenuFromRect: rect inView: self.view animated: YES ]; }


Debe crear una copia temporal de la imagen con una extensión "ig" o "igo" y luego compartirla con la UTI "com.instagram.exclusivegram". Esto debería presentar el DocumentInteractionController solo con la opción de Instagram:

if (![fm fileExistsAtPath:tempDirectory]) [fm createDirectoryAtPath:tempDirectory withIntermediateDirectories:YES attributes:nil error:nil]; NSString *tempInstagramPath = [tempDirectory stringByAppendingPathComponent:@"instagramShare.igo"]; if ([fm fileExistsAtPath:tempInstagramPath]) [fm removeItemAtPath:tempInstagramPath error:nil]; [UIImageJPEGRepresentation(imageToShare, 1.0) writeToFile:tempInstagramPath atomically:NO]; documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:tempInstagramPath]]; documentInteractionController.delegate = self; documentInteractionController.UTI = @"com.instagram.exclusivegram"; documentInteractionController.annotation = @{@"InstagramCaption": @"My Photo Caption!"}; if (![documentInteractionController presentOpenInMenuFromRect:CGRectMake(0, 0, 0, 0) inView:self.view animated:YES]) NSLog(@"Cannot open Document Interaction Controller for sharing with Instagram");


Usar la extensión de archivo igo es correcto, y la cantidad de aplicaciones que aparecerán en la lista es considerablemente menor que si usara ig . Desde mis pruebas (solo para iOS 9), la IU no hizo ninguna diferencia en la lista presentada.

Parece que el iPhone engancha doc no está actualizado.


self.documentInteractionController.UTI = @"com.instagram.exclusivegram"; self.documentInteractionController = [self setupControllerWithURL:igImageHookFile usingDelegate:self];

Parece que la cadena UTI se sobrescribe con setupControllerWithURL:usingDelegate: method.