Не могу прикрепить изображение к MFMessageComposeViewController
Я делаю следующее, но при входе в систему всегда возвращается, что изображение не может быть прикреплено. Что здесь не так?
- (void)showInvitation {
if (![MFMessageComposeViewController canSendText]) {
UIAlertView *warningAlert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Your device doesn't support SMS!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[warningAlert show];
return;
}
NSString *message = [NSString stringWithFormat:@"Download this game!"];
MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
messageController.messageComposeDelegate = self;
[messageController setBody:message];
if ([MFMessageComposeViewController canSendAttachments]) {
NSLog(@"Attachments Can Be Sent.");
NSData *imgData = [NSData dataWithContentsOfFile:@"water"];
BOOL didAttachImage = [messageController addAttachmentData:imgData typeIdentifier:(NSString *)kUTTypePNG filename:@"image.png"];
if (didAttachImage) {
NSLog(@"Image Attached.");
} else {
NSLog(@"Image Could Not Be Attached.");
}
}
[self presentViewController:messageController animated:YES completion:nil];
}
2 ответа
Решение
Как обсуждалось в комментариях, используйте addAttachmentURL:withAlternateFilename:
, Я думаю, что NSData
объект, который вы предоставляете, не соответствует kUTTypePNG
набрать и добавить вложение не удается.
Пожалуйста, попробуйте этот код. Это работает нормально для меня.
if (MFMessageComposeViewController.canSendText()) {
let controller = MFMessageComposeViewController()
controller.body = "Solution of broken image in composer while sending through MFMessageComposserViewController "
controller.messageComposeDelegate = self
if image.imageAsset != nil {
let imageData = UIImageJPEGRepresentation(self.fixOrientation(img: image), 1) //! as NSData
controller.addAttachmentData(imageData! , typeIdentifier: "image/.jpeg", filename: "image.jpeg")
}
self.present(controller, animated: true, completion: {
completion(true)
})
}
}