gpt4 book ai didi

iOS9 - 分享到 Instagram(w/hooks)不工作

转载 作者:技术小花猫 更新时间:2023-10-29 11:14:27 24 4
gpt4 key购买 nike

我目前正在更新我的一个应用程序以兼容 iOS9,但我在分享到 Instagram 功能时遇到了问题。我正在使用他们的开发者网站上所述的 Instagram Hook :( https://instagram.com/developer/mobile-sharing/iphone-hooks/ )

我希望分享的图像已成功生成,带有 .igo 后缀,并且该功能在 iOS8 上仍按预期运行。它似乎与新版本的 iOS 不兼容。

这是使用 UIDocumentInteractionController 分享到 Instagram 的代码:

NSURL *instagramURL = [NSURL URLWithString:@"instagram://app"];

if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {

//convert image into .png format.
NSData *imageData = UIImagePNGRepresentation(image);

//create instance of NSFileManager
NSFileManager *fileManager = [NSFileManager defaultManager];

//create an array and store result of our search for the documents directory in it
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

//create NSString object, that holds our exact path to the documents directory
NSString *documentsDirectory = [paths objectAtIndex:0];

//add our image to the path
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"insta.igo"]];

//finally save the path (image)
[fileManager createFileAtPath:fullPath contents:imageData attributes:nil];

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 = [UIDocumentInteractionController interactionControllerWithURL:igImageHookFile];
[self.documentController setDelegate:self];
[self.documentController setUTI:@"com.instagram.exclusivegram"];
[self.documentController presentOpenInMenuFromRect:rect inView:self.view animated:YES];

} else {
NSLog (@"Instagram not found");
}

可能值得一提的是,我已经根据 iOS9 更改的要求在 info.plist 中配置了 URL 方案。

UIDocumentInteractionController 确实出现了,并且有“复制到 Instagram”选项。按下此选项只会导致 Controller 被关闭,不会在 Controller 的委托(delegate)(设置为 self; View Controller )上调用任何日志消息或断点。

如果有人遇到过或曾经遇到过这个问题,很高兴听到您的想法,或者更好的是,它是如何解决的。

更新

还值得一提的是,在 iOS8 设备上,文档交互 Controller 显示“在 Instagram 中打开”按钮。 iOS9 设备显示“复制到 Instagram”按钮。

最佳答案

更改这行代码后:

NSURL *igImageHookFile = [[NSURL alloc] initFileURLWithPath:newJpgPath];

为此:

NSURL *igImageHookFile = [NSURL URLWithString:newJpgPath];  

适用于 iOS 9 的 Instagram 分享功能现已可用。似乎前一行代码将 NSString 转换为 NSURL 会将“--://file”放在 URL 路径的末尾,这似乎无法在 iOS 9 中很好地注册。只需将 NSString 转换为没有初始化为文件 URL 的 NSURL 似乎可以工作。

关于iOS9 - 分享到 Instagram(w/hooks)不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32593908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com