2013-05-06 2 views
5

UIActivityViewController와 URL을 공유하면 Safari 나침반 만 표시됩니다. 이 링크는 사용자에게 링크를 공유하고 있음을 보여 주지만 대신 축소판/이미지를 표시하도록 할 수 있습니까? 이미지를 공유하려고하면이 작업이 수행된다는 것을 알지만, 여기에 링크를 공유하고 싶습니다.UIActivityViewController의 URL 첨부 파일 축소판 그림 표시

답변

1

NSURL을 직접 공유하는 대신 UIActivityItemSource 프로토콜을 구현하는 개체를 공유 할 수 있습니다. 이것은 NSURL을 랩핑하고 activityViewController:itemForActivityType: 메서드가 호출되면이를 반환하는 객체 일 수 있습니다.

그러면 공유 대화 상자의 축소판을 제공하기 위해 activityViewController:thumbnailImageForActivityType:suggestedSize: 옵션 메서드를 구현할 수 있습니다. 예를 들어

: 당신이 NSURL의 일반 인스턴스를 공유하는 것처럼

@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 

그런 다음 포장 URL을 공유 할 수 있습니다.

+2

이것은 작동하지 않는 것 같습니다 (XCode7/iOS9에서 테스트 됨). thumbnailImageForActivityType이 호출되지 않습니다. Facebook 및 메일 공유 옵션을 사용해 보았습니다. 아마도 다른 일부 공유 옵션과 함께 작동합니다. – Ciryon

+1

thumbnailImageForActivityType이 사진에서와 같이 이미지를 공유하는 데 사용된다고 생각합니다. 이미지를 선택할 수 있습니다. – CiNN