[Solved] How to send image via mms in ios 7+ programmatically? [closed]


You can approach this by two ways,
1 – By using MFMessageComposeViewController
2 – By MMS

In the first way you can send the image via iMessage
In the second way you can send MMS via Career network

For 1st process the code is

-(void)sendSMSto:(NSString *)number withImage:(UIImage *)sentImage{
 MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];

if([MFMessageComposeViewController canSendText]) {
    NSMutableString *messageBody = [[NSMutableString alloc] initWithString:@""];
    picker.messageComposeDelegate = self;
    picker.recipients = number?[NSArray arrayWithObject:number]:nil;// your recipient number or self for testing
    [picker setBody:messageBody];

    if ([picker respondsToSelector:@selector(addAttachmentData:typeIdentifier:filename:)]) {
        NSData *imageData = UIImagePNGRepresentation(sentImage);
        [picker addAttachmentData:imageData typeIdentifier:(@"public.image") filename:@"emoji.png"];
    }

    picker.body = messageBody;
    ELogs(@"Picker -- %@",picker.body);
    [self presentViewController:picker animated:YES completion:^{
       ELogs(@"SMS fired");
    }];
}
}

For second approach
use the UIPasteboard to copy the image and then paste it in the MMS screen

the code is

-(void)sendSMSto:(NSString *)number withImage:(UIImage *)sentImage{
if (sentImage) {
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    pasteboard.persistent = YES;
    pasteboard.image = sentImage;
}

//For sms through network career
NSString *phoneToCall = @"sms:";
NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded];
[[UIApplication sharedApplication] openURL:url];

}

Please accept the answer, if you find this useful

2

solved How to send image via mms in ios 7+ programmatically? [closed]