Quando condividi un URL con UIActivityViewController, mostra solo la bussola Safari. Capisco che questo dovrebbe mostrare all'utente che stanno condividendo un link, ma è possibile ottenere questo per mostrare una miniatura/immagine, invece? Mi rendo conto che lo fa se provo a condividere un'immagine, ma volevo solo condividere un link qui.Mostra miniatura per allegato url su UIActivityViewController
5
A
risposta
1
Invece di condividere direttamente un NSURL
, è possibile condividere un oggetto che implementa il protocollo UIActivityItemSource
. Questo può essere solo un oggetto che racchiude lo NSURL
e lo restituisce quando viene chiamato il metodo activityViewController:itemForActivityType:
.
È quindi possibile implementare il metodo opzionale activityViewController:thumbnailImageForActivityType:suggestedSize:
per fornire una miniatura per la finestra di dialogo Condividi.
Ad esempio:
@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
È quindi possibile condividere gli URL avvolti proprio come si farebbe condividere casi normali di NSURL
.
Questo non sembra funzionare (testato con XCode7/iOS9). thumbnailImageForActivityType non viene mai chiamato. Ho provato con Facebook e le opzioni di condivisione della posta. Forse funziona con qualche altra opzione di condivisione. – Ciryon
Penso che thumbnailImageForActivityType sia usato per condividere immagini come in Foto puoi selezionare le immagini – CiNN