使用UIActivityViewController共享图像在iOS 8中为空白/损坏

问题描述 投票:4回答:2

[看来,我在iOS 8中只有这个错误。我试图与UIActivityViewController共享图像和一些文本给我自己进行测试。有时,共享图像会在应该是共享图像的位置上产生一个问号,而在iMessage线程中点击它并不会执行任何操作,因为它是空白还是已损坏。如果我返回我的应用程序并尝试再次共享,有时图像确实会完美共享并且不是空白。

我正在使用的代码(在iOS 7中完美运行):

UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:@[[NSString stringWithFormat:@"Sent from http://appstore.com/appname"],[UIImage imageNamed:@"SomeImage"]]applicationActivities:nil];

activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeSaveToCameraRoll, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo, UIActivityTypeAirDrop];

[self presentViewController:activityVC animated:YES completion:NULL];

我试图弄清楚为什么有时会发生这种情况,以及如何解决它。我将不胜感激。随附问题/错误的屏幕截图:

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9MdEpOeC5wbmcifQ==” alt =“在此处输入图像描述”>

ios objective-c ios8 uiactivityviewcontroller
2个回答
1
投票

这里是共享视频文件的解决方法。也许您可以尝试同样的图像。

我有视频数据,我首先将其保存到文档目录中的文件中,然后附加了该文件。

//write to a file 
 [videoData writeToFile:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/image.mov"] atomically:YES];

(IBAction)ShareVideoWihFacebook:(id)sender {
//get the file url NSString* path =[NSHomeDirectory()stringByAppendingPathComponent:@"Documents/image.mov"];

NSURL *videoURL = [NSURL fileURLWithPath:path];

UIActivityViewController * activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[videoURL,@"Created by ..."] applicationActivities:NULL];


[activityVC setExcludedActivityTypes:@[ UIActivityTypeMail,UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard, UIActivityTypePrint,        UIActivityTypePostToWeibo,UIActivityTypeMessage,UIActivityTypeAirDrop,UIActivityTypeSaveToCameraRoll]];

[activityVC setValue:@"My Video" forKey:@"subject"];

[activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) {
//NSLog(@"completed dialog - activity: %@ - finished flag: %d", activityType, completed);
}];

[self presentViewController:activityVC animated:TRUE completion:nil];
}

0
投票

我知道这是一个古老的威胁,但是最近我遇到了同样的情况。首先,将要共享的文件保存到临时文件。目录,然后使用url.absoluteUrl共享网址。进行absoluteUrl似乎非常重要。

© www.soinside.com 2019 - 2024. All rights reserved.