2016-05-03 20 views
5

私は自分の問題を解決するために探しているのはほぼ2日間でしたが、成功しなかったので、Facebook、Twitter、電子メール、WhatsApp、"UIActivityViewController"を使用します。iOS Share 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]; 

が、TwitterやFacebook、のWhatsApp GIFファイル内のアニメーションとその画像のようにされていません... 私はすでに同じ問題に関するすべてのスタックオーバーフロー問題を読むthisまたはthisまたはthisのように、私のために働いていない。共有のためのTwitter上のGIFは、TwitterのAPIを使用して、目標とその非常にうまく機能を実現するマルチパートリクエストを作成する必要がありました:

TWITTER:日の研究に

答えて

3

これまでのベースがあることが分かりました。

FACEBOOK:私はFACEBOOKSHAREKITを使用してFacebook上でいくつかのGIFを共有していたが、時にはGIFファイルがアニメーション化され、なぜ私は知らない、時々ではありません。

Instagramの:Instagramの上のGIFを共有するためには、それを共有してカメラロールに保存し、その後MP4(またはInstagramのに受け入れられ、他のビデオフォーマット)にGIFを変換しなければならなかった、それは少しねじれたですが、そのは非常によく働いて。

WHATSAPP:GIFにはまったく対応していません。

これをすべて実行するには、「UIActivityViewController」を使用できなかったので、カスタム共有ページを作成することにしました。誰かがここに追加する何かを知っているなら、私と他の人を助けるために私に教えてください(特にFacebookについて)。

1

は、同様の問題が発生し、多くが、まだない完璧なソリューションを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]; 
+0

Facebookのためのあなたのソリューションは、これはFacebookを利用してGIFファイルを共有するための唯一の方法である、残念ながら今まで、良いです:// – Sattar

0

可能株式GIFファイルの場合、一部の専門家は、私と、コードを修正してください。
+1

本当にうまくいっていますか???? –

+0

yes working code ,,, –

+1

ありがとうございました... –

関連する問題