2016-05-03 10 views
5

यह लगभग 2 दिन रहा है कि मैं अपनी समस्या का समाधान ढूंढ रहा हूं लेकिन मैं सफल नहीं था, मैं फेसबुक, ट्विटर पर जीआईएफ (एनिमेटेड छवि) साझा करना चाहता हूं, ईमेल, व्हाट्सएप, "UIActivityViewController" का उपयोग कर।आईओएस शेयर जीआईएफ (एनिमेटेड छवि) काम नहीं कर रहा

यह मेरा कोड है: जब मैं ईमेल में हिस्सा

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]; 

इसकी एनिमेटेड और अपनी सही काम कर रहा है, लेकिन ट्विटर, फेसबुक में, WhatsApp Gifs एनिमेटेड और नहीं कर रहे हैं अपनी एक छवि ... मैं पहले से ही की तरह this या this या this की तरह एक ही समस्या के बारे में सभी स्टैक-ओवरफ़्लो प्रश्न पढ़ें लेकिन यह मेरे लिए काम नहीं कर रहा है।

उत्तर

3

दिनों शोध पर अब तक आधार पता चला कि:

TWITTER: शेयर के लिए ट्विटर पर एक GIF चहचहाना एपीआई का उपयोग और लक्ष्य है और इसके बहुत अच्छी तरह से काम कर प्राप्त करने के लिए एक बहुखण्डीय अनुरोध बनाने के लिए था।

FACEBOOK: मैं FACEBOOKSHAREKIT का उपयोग कर फेसबुक पर कुछ GIF साझा किया था, लेकिन मैं नहीं जानता कि क्यों कभी कभी Gifs एनिमेटेड है, कभी कभी नहीं।

INSTAGRAM: इंस्टाग्राम पर gif साझा करने के लिए MP4 (या किसी अन्य वीडियो इंस्टाग्राम द्वारा स्वीकृत प्रारूप) के लिए GIFS कन्वर्ट करने के लिए तो यह कैमरा रोल में बचाने तो यह हिस्सा था, यह थोड़ा मुड़ है, लेकिन इसके बहुत अच्छी तरह से काम कर रहे।

WHATSAPP: यह जीआईएफ का समर्थन नहीं करता है।

यह सब करने के लिए मैं "UIActivityViewController" का उपयोग नहीं कर सका, इसलिए कस्टम शेयर पृष्ठ बनाने का निर्णय लिया। अगर किसी को यहां जोड़ने के लिए कुछ पता है, तो मुझे और दूसरों की मदद करने के लिए कृपया मुझे बताएं (विशेष रूप से फेसबुक के बारे में)। धन्यवाद अग्रिम में

1

समान समस्या हुई है और एक बहुत है लेकिन अभी भी नहीं एक आदर्श समाधान Google पर, सबसे अच्छा मैं आया था यहाँ है:

उपयोग UIActivityItemProvider और विस्तार - (आईडी) मद {} अलग UIActivityType के लिए:

ट्विटर: डिफ़ॉल्ट UIActivityViewController ट्विटर शेयर इसका समर्थन नहीं करता है, फिर भी यह इसे अभी भी जेपीजी के रूप में "स्केल डाउन" करेगा। हालांकि किसी भी तरह यह 100 किलो से कम जीआईएफ के लिए काम करता है (आईओएस 9 में परीक्षण किया गया) और मुझे नहीं पता कि क्यों। इसलिए, मुझे here में सिखाए गए जीआईएफ को अपलोड करने के लिए SLRequest का उपयोग करना होगा। जब SLRequest किया जाता है और वापस आ जाता है, तो UIActivityViewController को खारिज कर दें। इसका नकारात्मक हिस्सा कोई पूर्वावलोकन शेयर शीट नहीं है और उपयोगकर्ता अब अपना संदेश टाइप नहीं कर सकते हैं।

फेसबुक: यह वास्तव में बहुत आसान है!बस Giphy को GIF अपलोड करें, तो फ़ाइल की सामग्री के बजाय UIActivityViewController को Giphy URL प्रदान, फेसबुक यह समझते हैं और एनिमेटेड GIF

- (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 में है दिखाएगा, मैं वास्तव में एक आईओएस newb तो कर रहा हूँ कुछ विशेषज्ञों ने मुझे और कोड यदि संभव हो तो

+0

फेसबुक के लिए आपका समाधान अच्छा है, दुर्भाग्य से अब तक इस फेसबुक पर gifs साझा करने के लिए एक ही रास्ता है करने के लिए। – Sattar

0

// शेयर GIF फाइल ठीक करें: 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]; 
+1

क्या यह वास्तव में काम कर रहा है ... ??? –

+0

हाँ काम कोड, –

+1

ठीक है श्रीमान धन्यवाद ... –

संबंधित मुद्दे