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 不是那么独家的主要内容,如果未能解决你的问题,请参考以下文章

instagram国内怎么注册不了安卓

ios - Instagram用新的instagram图表api登录?

用于实现 Instagram Video Downloader、InstaDP 和 Instagram Stories 的 Instagram API

为啥 instagram 嵌入代码只显示一个 instagram 图标,而不是图像?

网站中的 Instagram 动态 - 使用 Instagram 基本显示 API

如何为 Instagram 基本显示 API 实现 Instagram 或 Facebook 登录按钮的继续?