iPhone:从我自己的应用程序发送图像+文本到iMessage

时间:2011-12-09 12:01:29

标签: iphone objective-c ios5

我想在ios5中从我自己的应用程序发送图像和文本到iMessage。

是否可以从应用程序向iMessage发送图像?

如果是的话

那么它的编码是什么?我应该在我的应用程序中添加哪些框架?

请帮助我...

4 个答案:

答案 0 :(得分:2)

这是不可能的,首先你需要使用仅支持文本的MFMessageComposeViewController

此外,无法检测邮件是否将通过iMessage

发送

答案 1 :(得分:2)

以下是我将.mp4作为附件发送到消息

所做的工作 在你的.h文件中

    #进口  和       MFMessageComposeViewControllerDelegate>

<。p>和.m文件中的方法

-(void)sendMovieWithMessage{

MFMessageComposeViewController* messageComposer = [MFMessageComposeViewController new];
messageComposer.messageComposeDelegate = self;
[messageComposer setBody:@""];

NSData *attachment = [NSData dataWithContentsOfURL:[NSURL fileURLWithPath:[self bringFilePathfromDocumentsDirectory:@"your file.mp4"]] options:NSDataReadingUncached error:nil];
[messageComposer addAttachmentData:attachment typeIdentifier:@"video/mp4" filename:@"your file.mp4"];



[self presentViewController:messageComposer animated:YES completion:nil];


}

//代表

- (void)messageComposeViewController:(MFMessageComposeViewController     *)controller didFinishWithResult:(MessageComposeResult)result{

[self dismissViewControllerAnimated:YES completion:^{


}];

 }

答案 2 :(得分:1)

虽然这是一个老问题,但我只是想添加这个来帮助那些在Google上找到这个的人:

要使以下代码生效,您必须导入:

#import <MessageUI/MessageUI.h>

在您的构建设置(MessageUI.framework

中关联Project Name > Build Phases > Link Binary with Libraries

我的代码适用于视频和图片,因此您必须将其设置为:

NSString *attachmentType = @"image";NSString *attachmentType = @"video";

您还必须设置attachment NSData:

NSData *attachment = UIImageJPEGRepresentation(YOUR_IMAGE,.5)

这是设置图像的示例。 .5是图像质量,我发现它在质量和尺寸之间是一个很好的权衡。 1.0是最好的质量(和最大尺寸!)

MFMessageComposeViewController* messageComposer = [MFMessageComposeViewController new];
    messageComposer.messageComposeDelegate = self;
    [messageComposer setBody:message];
    [messageComposer setRecipients:recipients];colorForUsage:SC_THEME_MAIN];
    if (attachment && attachmentType) {
        if ([attachmentType isEqual:@"image"]) {
            [messageComposer addAttachmentData:attachment typeIdentifier:@"image/jpeg" filename:@"shotnote.jpg"];
        }
        if ([attachmentType isEqual:@"video"]) {
            [messageComposer addAttachmentData:attachment typeIdentifier:@"video/mp4" filename:@"shotnote.mp4"];
        }
    }
[YOUR_CURRENT_VIEW_CONTROLLER 
     presentViewController:messageComposer
     animated:YES
     completion:nil];

还要确保实现MFMessageComposeViewControllerDelegate协议,以便在用户按下发送或取消时能够实际关闭消息撰写视图控制器!

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result

干杯!

答案 3 :(得分:0)

您发送的方式与您发送短信的方式相同 - 如果您发送的帐户是启用了iMessage,那么它将发送给iMessage。 Apple ios5 iMessage read and write http://developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMessageComposeViewController_class/Reference/Reference.html#//apple_ref/doc/uid/TP40009668

至于在您的应用中检测到某人是否有iMessage ...我不确定您是否可以。