UIActivityViewController와 URL을 공유하면 Safari 나침반 만 표시됩니다. 이 링크는 사용자에게 링크를 공유하고 있음을 보여 주지만 대신 축소판/이미지를 표시하도록 할 수 있습니까? 이미지를 공유하려고하면이 작업이 수행된다는 것을 알지만, 여기에 링크를 공유하고 싶습니다.UIActivityViewController의 URL 첨부 파일 축소판 그림 표시
5
A
답변
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을 공유 할 수 있습니다.
이것은 작동하지 않는 것 같습니다 (XCode7/iOS9에서 테스트 됨). thumbnailImageForActivityType이 호출되지 않습니다. Facebook 및 메일 공유 옵션을 사용해 보았습니다. 아마도 다른 일부 공유 옵션과 함께 작동합니다. – Ciryon
thumbnailImageForActivityType이 사진에서와 같이 이미지를 공유하는 데 사용된다고 생각합니다. 이미지를 선택할 수 있습니다. – CiNN