2013-05-06 6 views
5

जब आप UIActivityViewController के साथ एक यूआरएल साझा करते हैं, तो यह केवल सफारी कंपास दिखाता है। मुझे लगता है कि यह उपयोगकर्ता को दिखाएगा कि वे एक लिंक साझा कर रहे हैं, लेकिन क्या यह इसके बजाय थंबनेल/छवि दिखाने के लिए संभव है? मुझे एहसास है कि अगर मैं एक छवि को आजमाकर साझा करता हूं तो यह करता है, लेकिन मैं यहां एक लिंक साझा करना चाहता था।UIActivityViewController पर यूआरएल अटैचमेंट के लिए थंबनेल दिखाएं

उत्तर

1

सीधे NSURL साझा करने के बजाय, आप उस ऑब्जेक्ट को साझा कर सकते हैं जो UIActivityItemSource प्रोटोकॉल लागू करता है। यह केवल एक ऑब्जेक्ट हो सकता है जो NSURL को लपेटता है और activityViewController:itemForActivityType: विधि को कॉल करते समय इसे वापस कर देता है।

आप साझा संवाद के लिए थंबनेल प्रदान करने के लिए वैकल्पिक विधि activityViewController:thumbnailImageForActivityType:suggestedSize: लागू कर सकते हैं।

उदाहरण के लिए:

@interface URLWrapper:UIActivityItemProvider 

@property (nonatomic, strong) NSURL *url; 

@end 

@implementation URLWrapper 

+ (instancetype)activityItemSourceUrlWithUrl:(NSURL *)url { 
    URLWrapper *wrapper = [[self alloc] initWithPlaceholderItem:@""]; 
    wrapper.url = url; 

    return wrapper; 
} 

- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController { 
    return [self activityViewController:activityViewController itemForActivityType:nil]; 
} 

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType { 
    return self.url; 
} 

- (UIImage *)activityViewController:(UIActivityViewController *)activityViewController thumbnailImageForActivityType:(NSString *)activityType suggestedSize:(CGSize)size { 
    UIImage* thumbnail; // get image from somewhere! 
    return thumbnail; 
} 

@end 

फिर आप लिपटे यूआरएल साझा कर सकते हैं आप NSURL के सामान्य उदाहरणों का हिस्सा हैं बस के रूप में।

+2

यह काम नहीं कर रहा है (एक्सकोड 7/आईओएस 9 के साथ परीक्षण किया गया)। थंबनेल ImageForActivityType कभी नहीं कहा जाता है। फेसबुक और मेल शेयर विकल्पों के साथ प्रयास किया। शायद यह किसी अन्य शेयर विकल्प के साथ काम करता है। – Ciryon

+1

मुझे लगता है कि थंबनेल ImageForActivityType का उपयोग फ़ोटो जैसी छवियों को साझा करने के लिए किया जाता है, आप छवियों का चयन कर सकते हैं – CiNN

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