ios - 分享后如何从 Instagram 应用程序重定向到我的 iOS 应用程序

标签 ios objective-c iphone ios7 instagram

我编写了以下代码,用于通过 Instagram 分享图像。它工作正常,但我的问题是我想在共享完成后重定向到我的应用程序。

 -(void)instaGramWallPost
{
NSURL *instagramURL = [NSURL URLWithString:@"instagram://app"];
if([[UIApplication sharedApplication] canOpenURL:instagramURL]) //check for App is install or not
{

    UIGraphicsBeginImageContext(CGSizeMake(self.view.bounds.size.width, self.view.frame.size.height));
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    NSData *imageData = UIImagePNGRepresentation(image); //convert image into .png format.
    NSFileManager *fileManager = [NSFileManager defaultManager];//create instance of NSFileManager
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //create an array and store result of our search for the documents directory in it
    NSString *documentsDirectory = [paths objectAtIndex:0]; //create NSString object, that holds our exact path to the documents directory
    NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"insta.igo"]]; //add our image to the path
    [fileManager createFileAtPath:fullPath contents:imageData attributes:nil]; //finally save the path (image)
    NSLog(@"image saved");

    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.UTI = @"com.instagram.exclusivegram";
    self.documentController = [self setupControllerWithURL:igImageHookFile usingDelegate:self];
    self.documentController=[UIDocumentInteractionController interactionControllerWithURL:igImageHookFile];
    [self.documentController presentOpenInMenuFromRect:rect inView: self.view animated:YES];
}
else
{
    [[[UIAlertView alloc]initWithTitle:@"Title" message:@"Please install instagram and try again" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil] show];
}
}

-(UIDocumentInteractionController *) setupControllerWithURL: (NSURL*) fileURL usingDelegate: (id <UIDocumentInteractionControllerDelegate>) interactionDelegate      {

UIDocumentInteractionController *interactionController = [UIDocumentInteractionController interactionControllerWithURL: fileURL];
interactionController.delegate = interactionDelegate;
return interactionController;
}

我会在需要时调用 instagramWallPost 方法。我可以分享它工作正常。但我的问题是之后我想重定向到我的应用程序。我该如何做到这一点或者有什么办法可以做到这一点?

最佳答案

由于 Instagram 的隔离共享机制,目前这是不可能的;您所能做的就是使用内置的共享 Controller 将您的图像发送到 Instagram,然后由用户决定是否切换回您的应用。

关于ios - 分享后如何从 Instagram 应用程序重定向到我的 iOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32132596/

相关文章:

ios - 将当前用户保存到与 swift 解析的关系

objective-c - NSException 重复 NSTask 时

ios - 在 Swift 中刷新 NSFetchedResultController

释放包含滚动 UITableView 的 View Controller 时,iPhone 应用程序崩溃

html - Phonegap iOS 输入和 contenteditable 错误

ios - 模拟弹出框的模糊效果时如何为屏幕截图创建蒙版图像

ios - 如何删除我用循环创建的多个按钮?

ios - 执行插入或更新 2 个表 SQLITE 的有效方法

iphone - 如何在 Objective C 中使用静态变量(BOOL)

ios - Cocoapods 与 Gradle - iOS