我正在迁移使用UIActivityViewController在iOS6中共享,但我无法弄清楚如何创建在通过电子邮件共享时包含的电子邮件附件对象.
iOS5中的相应代码是:
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
[picker addAttachmentData:data mimeType:@"application/XXX" fileName:fileName];
Run Code Online (Sandbox Code Playgroud) 已经差不多2天了,我正在寻找解决我的问题但我没有成功,我想在Facebook,Twitter,电子邮件,WhatsApp上使用"UIActivityViewController"分享GIF(动画图像).
这是我的代码:
NSURL *imagePath = [NSURL URLWithString:@"http://sth.gif"];
NSData *animatedGif = [NSData dataWithContentsOfURL:imagePath];
NSArray *sharingItems = [NSArray arrayWithObjects: animatedGif,stringToShare, nil];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];
Run Code Online (Sandbox Code Playgroud)
当我分享电子邮件时,它的动画和它的工作完美,但在Twitter,Facebook,whatsApp Gifs没有动画,它就像一个图像......我已经阅读了所有关于相同问题的堆栈溢出问题像这样或这样或者这样但是它不适合我.
我正试图通过标准iOS共享屏幕将我的(统一)应用程序的gif共享到社交网络.
由于这个问题,我首先将路径包装到NSURL中的gif,然后再将其发送到UIActivityViewController:
NSURL *nsGifURL = [NSURL fileURLWithPath:nsGifPath];
NSArray *itemsToShare = @[nsMessage, nsGifURL];
// find the unity window:
UIWindow *window = [UIApplication sharedApplication].keyWindow;
UIActivityViewController *share = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
[window.rootViewController presentViewController:share animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
这一切都编译并运行没有错误,但是当我到达另一个应用程序时,图像是静态的而不是gif.
如何让fb之类的应用接受并在另一端显示gif?
编辑:nsGifPath肯定有.gif扩展名