正如我们所知,随着ios 8的推出,苹果允许自定义键盘扩展。在键盘扩展中,我们可以使用复制图像到剪贴板发送短信中的图像,GIF等。
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSData *data= UIImagePNGRepresentation([UIImage imageNamed:@"so_close_disappointed_meme.png"]);
[pasteboard setData:data forPasteboardType:@"public.png"];
现在我正在尝试在iMessage中发送音频文件,就像这个功能reference。不知道苹果会允许我们在iMessage中发送音频吗?。所以我试过上面的方法,但它没有显示任何粘贴短信窗口中的音频选项。
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"];
任何人都可以建议我如何使用自定义键盘扩展程序发送音频文件。这可能吗?
答案 0 :(得分:10)
我相信您可以直接将文件附加到MFMessageComposeViewController
。以下是documentation link如何完成的工作。
以下是执行此操作的步骤。
+
(BOOL)isSupportedAttachmentUTI:(NSString *)uti
MFMessageComposeViewController
-
(BOOL)addAttachmentData:(NSData *)attachmentData
typeIdentifier:(NSString *)uti filename:(NSString *)filename
醇>
正如该方法的描述所述
当您要添加到邮件的附件没有文件系统表示时,此方法特别有用。例如,对于以编程方式组成的视听内容,情况就是如此。
注意:您必须将音频文件转换为NSData
答案 1 :(得分:0)
MFMessageComposeViewController不是此方案中的解决方案。自定义键盘扩展不应提供新的视图控制器,而只是将音频文件粘贴到粘贴板。下面是一些适合我的快速代码
let path = NSBundle.mainBundle().pathForResource("audio", ofType:"wav")
let fileURL = NSURL(fileURLWithPath: path!)
let data = NSData(contentsOfURL: fileURL)
let wavUTI = "com.microsoft.waveform-audio"
UIPasteboard.generalPasteboard().setData(data!, forPasteboardType: wavUTI)