#ios #objective-c #uiactivityviewcontroller
#iOS #objective-c #uiactivityviewcontroller
Вопрос:
Я хочу поделиться изображением и текстом во всех ActivityController
, но следующий код не подходит для меня:
NSString *theFileName = [[fileNameOfImage lastPathComponent] stringByDeletingPathExtension];
// [BDGSharing shareUsingActivityController:strDataForShare urlStr:@"google.com" image:_imageview1.image];
NSString *st = [NSString stringWithFormat:@"%@.jpg",theFileName];
NSString *documentDirectory=[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSString *saveImagePath=[documentDirectory stringByAppendingPathComponent:st];
NSData *imageData2=UIImagePNGRepresentation(_imageview1.image);
[imageData2 writeToFile:saveImagePath atomically:YES];
NSURL *imageURL1=[NSURL fileURLWithPath:saveImagePath];
documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:imageURL1];
documentInteractionController.delegate = self;
documentInteractionController.name=strDataForShare;
documentInteractionController.UTI = @"public.plain-text";
[documentInteractionController presentOptionsMenuFromRect:CGRectMake(1, 1, 1, 1) inView:self.view animated:YES];
Пожалуйста, дайте мне предложение, если есть какая-либо библиотека или комплект, чтобы поделиться ими в WhatsApp.
Комментарии:
1. Вам нужно будет объяснить, что вы ожидаете, и что происходит вместо этого, или какие-либо сообщения об ошибках, которые вы получаете.
2. вы хотите использовать контроллер активности?
Ответ №1:
Давайте рассмотрим ваш код. Первый-
NSString *st = [NSString stringWithFormat:@"%@.jpg",theFileName];
NSData *imageData2=UIImagePNGRepresentation(_imageview1.image);
Вы сохраняете изображение в формате .jpg с представлением в формате PNG, не следует ли вместо этого использовать представление в формате jpeg?
UIImageJPEGRepresentation(_imageview.image, 1.0)
Второй-
[imageData2 writeToFile:saveImagePath atomically:YES];
Прямо здесь вы не уверены, было ли изображение успешно сохранено или нет. Пожалуйста, добавьте условие
if([imageData2 writeToFile:saveImagePath atomically:YES]){
// here you are sure that the image was saved and you can use it.
}
Третье-
documentInteractionController.UTI = @"public.plain-text";
Вы делитесь изображением в формате jpg, почему ваш UTI — обычный текст? Разве это не должно быть public.image
?
Просто попробуйте решить эту проблему, и ваш код должен работать успешно.
Комментарии:
1. Спасибо.. но я хочу поделиться изображением текстом со всех контроллеров активности.. Когда я использовал этот код, я мог делиться изображением только из приложения whats и электронной почты.?
2. Насколько я знаю, нет способа поделиться изображением и текстом в Instagram с помощью UIDocumentInteractionController. Вы пробовали использовать api instagram?