Instagram 钩子 com.instagram.exclusivegram 不是那么独家
Posted
技术标签:
【中文标题】Instagram 钩子 com.instagram.exclusivegram 不是那么独家【英文标题】:Instagram hook com.instagram.exclusivegram not so exclusive 【发布时间】:2014-01-17 00:47:46 【问题描述】:据我所知,如果您真的需要,您必须使用 com.instagram.photo 来获取文档交互控制器的 UTI 的常规选项和 com.instagram.exclusivegram只希望 Instagram + 使用正确的扩展名 .ig 用于一般 Instagram 和 .igo 用于独家 Instagram。
出于某种原因,我看到了多种选择,而不仅仅是我想要的 Instagram。
我是不是忘记了什么?有不同的做法吗?
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 ];
【问题讨论】:
我也有同样的问题... 请发布您的setupControllerWithURL:usingDelegate:
方法。设置UTI
字符串后,此方法的结果将分配给documentInteractionController
属性。
【参考方案1】:
使用文件扩展名igo
是正确的,列表中出现的应用程序数量比使用ig
时要少得多。根据我的测试(仅限 ios 9),UTI 对显示的列表没有影响。
看起来iPhone hooks doc 已经过时了。
【讨论】:
【参考方案2】:self.documentInteractionController.UTI = @"com.instagram.exclusivegram";
self.documentInteractionController = [self setupControllerWithURL:igImageHookFile usingDelegate:self];
似乎UTI字符串被setupControllerWithURL:usingDelegate:
方法覆盖了。
【讨论】:
【参考方案3】:您需要使用“ig”或“igo”扩展名创建图像的临时副本,然后与 UTI“com.instagram.exclusivegram”共享。这应该只显示带有 Instagram 选项的 DocumentInteractionController:
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");
【讨论】:
以上是关于Instagram 钩子 com.instagram.exclusivegram 不是那么独家的主要内容,如果未能解决你的问题,请参考以下文章
ios - Instagram用新的instagram图表api登录?
用于实现 Instagram Video Downloader、InstaDP 和 Instagram Stories 的 Instagram API
为啥 instagram 嵌入代码只显示一个 instagram 图标,而不是图像?