Instagram视频iPhone Hook

时间:2014-10-14 18:32:35

标签: ios instagram

目前最好的解决方案:

https://stackoverflow.com/a/21888830/1786820

我想通过使用PhotoRoll中的预选视频文件打开Instagram应用程序以及预加载的标题来做得更好。在Flipagram应用程序中,他们就是这样做的。当您点击视频的分享时,他们会保存您的相机胶卷,建议一个标题,然后直接进入Instagram应用照片选择屏幕,并预先选择视频。即使视频不是PhotoRoll中的最新媒体,它也会正确地突出显示正确的视频,以及Flipagram应用程序中准备的标题。

这可能是未记录的iPhone钩子吗?

感谢任何帮助。

2 个答案:

答案 0 :(得分:12)

我想出了让我的应用程序接受instagram:// URL架构的想法。来自Flipagram的钩子在我的应用程序中打开如下:

的Instagram://库AssetPath =资产库%3A%2F%2Fasset%2Fasset.mp4%3Fid%3D8864C466-A45C-4C48-B76F-E3C421711E9D%26ext%3Dmp4&安培; InstagramCaption =有些%20Preloaded%20Caption

未记录的iPhone挂钩,允许您从iPhone照片卷中自动选择资源,并预加载视频的标题。这应该为您提供Flipagrams应用程序与Instagram共享视频时的相同用户体验。

NSURL *videoFilePath = ...; // Your local path to the video
NSString *caption = @"Some Preloaded Caption";
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeVideoAtPathToSavedPhotosAlbum:[NSURL URLWithString:videoFilePath] completionBlock:^(NSURL *assetURL, NSError *error) {
    NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library?AssetPath=%@&InstagramCaption=%@",[assetURL absoluteString].percentEscape,caption.percentEscape]];
    if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
        [[UIApplication sharedApplication] openURL:instagramURL];
    }
}];

效果很好!

更新的 Instagram已经删除了将标题传递给他们的应用程序的功能。现在最好的解决方案就是将所需的标题复制到粘贴板上。

答案 1 :(得分:0)

答案是它根本不是从相机胶卷拉视频,它可能看起来就像是。

此处的文档:http://instagram.com/developer/mobile-sharing/iphone-hooks/

相关位是“文档交互”的底部。

你可以通过这样做来做到这一点:

NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"instagram.igo"];
NSData *data = // set this yourself

NSError *error = nil;
if (! [data writeToFile:filePath options:NSDataWritingAtomic error:&error])
{
    // error here
}

self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:filePath]];
self.documentInteractionController.delegate = self;
self.documentInteractionController.UTI = @"com.instagram.exclusivegram";
self.documentInteractionController.annotation = @{ @"InstagramCaption" : @"caption text here" };
const BOOL couldOpen = [self.documentInteractionController presentOpenInMenuFromRect:CGRectZero inView:myView animated:YES];

设置自己出现的数据,标题和视图。请注意,UIDocumentInteractionController也是一个属性。它应该保留在某个地方而不仅仅是方法中的局部变量,因为当方法完成时它需要存在于该范围之外。