如何通过iMe​​ssage ios 8发送音频文件

jam*_*mil 5 audio uipasteboard ios imessage custom-keyboard

正如我们所知,随着ios 8的推出,苹果允许自定义键盘扩展.在键盘扩展中我们可以通过使用复制图像到剪贴板来发送短信中的图像,gif等.

 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
 NSData *data= UIImagePNGRepresentation([UIImage imageNamed:@"so_close_disappointed_meme.png"]);
 [pasteboard setData:data forPasteboardType:@"public.png"];
Run Code Online (Sandbox Code Playgroud)

现在我正试图在iMessage中发送音频文件,就像这个功能参考一样.不知道苹果会允许我们在iMessage中发送音频吗?.so我试过上面的方法,但它没有在SMS窗口中显示音频的任何粘贴选项.

 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
 NSString *path = [[NSBundle mainBundle] pathForResource:@"tune"ofType:@"mp3"];
 NSURL *url = [[NSURL alloc] initWithString:path];
 NSData *data = [NSData dataWithContentsOfURL:url];
 [pasteboard setData:data forPasteboardType:@"public.mp3"];
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我如何通过使用自定义键盘扩展发送音频文件.它可能吗?

Gan*_*ani 10

我相信你可以直接将文件附加到MFMessageComposeViewController.以下是如何完成的文档链接.

以下是这样做的步骤.

  1. 检查是否可以使用文件UTI发送文件 + (BOOL)isSupportedAttachmentUTI:(NSString *)uti
  2. 查找文件UTI.即文件的路径
  3. 将文件附加到 MFMessageComposeViewController使用- (BOOL)addAttachmentData:(NSData *)attachmentData typeIdentifier:(NSString *)uti filename:(NSString *)filename

正如该方法的描述所说

当您要添加到邮件的附件没有文件系统表示时,此方法特别有用.例如,对于以编程方式组成的视听内容,情况就是如此.

注意:您必须将音频文件转换为NSData