は、同様の問題が発生し、多くが、まだない完璧なソリューションをGoogleで事前に おかげで、私が思いついた最高はここにある:
使用UIActivityItemProviderと拡張 - 異なるUIActivityType用(ID)の項目{}:
Twitter:デフォルトのUIActivityViewControllerのTwitter共有はまだそれをサポートしていませんが、それを静止画JPGとして「縮小」します。しかし、どういうわけか、それは100kb未満のGIF(iOS 9でテストされています)で動作します。なぜか分かりません。したがって、私はhereで教えられているように、SLRequestを使ってGIFをアップロードする必要があります。 SLRequestが完了して戻ったら、UIActivityViewControllerを閉じます。その欠点はプレビュー共有シートがないことと、ユーザーは自分のメッセージをもう一度入力することができないことです。
Facebook:実際にははるかに簡単です!ただ、GiphyにGIFをアップロードし、その後、代わりにファイルの内容のUIActivityViewControllerにGiphy URLを提供し、Facebookはそれを認識し、
- (id)item
{
if ([self.activityType isEqualToString:UIActivityTypePostToFacebook]) {
// Upload to Giphy
...
return [NSURL URLWithString:giphyURL];
}
if ([self.activityType isEqualToString:UIActivityTypePostToTwitter]) {
// Use SLRequest to share instead
...
// Dismiss the UIActivityViewController (I am using Unity)
[UnityGetGLViewController() dismissViewControllerAnimated:NO completion: NULL];
return nil;
}
}
完全なコードは私のGitHubであるアニメーションGIFが表示されます、私は実際にはそれほどのiOS初心者くさいですよWhatsApp
NSURL *imageUrl =[self.ImageArray objectAtIndex:currentPhotoIndex];
NSString *path=imageUrl.absoluteString;
NSArray *strings = [path componentsSeparatedByString:@"/"];
NSString *mygif=[strings objectAtIndex:strings.count-1];
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *dataPath = [documentsPath stringByAppendingPathComponent:@"/MrHRamani"];
NSString *filePath = [dataPath stringByAppendingPathComponent:mygif];
NSURL *urll=[NSURL fileURLWithPath:filePath];
NSLog(@"imag %@",imageUrl);
self.documentationInteractionController.delegate = self;
self.documentationInteractionController.UTI = @"net.whatsapp.image";
self.documentationInteractionController = [self setupControllerWithURL:urll usingDelegate:self];
[self.documentationInteractionController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];
Facebookのためのあなたのソリューションは、これはFacebookを利用してGIFファイルを共有するための唯一の方法である、残念ながら今まで、良いです:// – Sattar