我正在尝试使用UIActivityViewController
来共享音频文件(.aac)。这是我写入沙盒文档目录的临时文件。
我在NSURL
方法中传递initWithActivityItem:
。
[audioData writeToFile:[urlToAudioFile path] options:NSDataWritingFileProtectionNone error:&error];
UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[urlToAudioFile] applicationActivities:nil];
[self.view.window.rootViewController presentViewController:activity animated:YES completion:^{
...
}];
当我按下分享按钮时,需要几秒钟,弹出活动表,唯一的选项是Airdrop。
如何显示电子邮件或iMessage等其他选项? 是否有回调方法,以便我可以确定“共享”何时完成,以便我可以再次删除临时文件?
有没有办法让我添加音频文件而不必先将其写入磁盘?我不能以某种方式传递NSData
对象吗?
答案 0 :(得分:4)
如果您尝试共享实际文件,则需要使用UIDocumentInteractionController
,它旨在共享整个文件。 UIActivityViewController
用于文本,也可能是图像。
如果您需要向自己的文件发送消息而不是仅打开其他应用,请考虑为UIActivity
制作自定义UIDocumentInteractionController
,为邮件制作另一个自定义mfmailcomposeviewcontroller
。请参阅MFMessageComposeViewController
和{{1}}
参见(Apple Developer):https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDocumentInteractionController_class/Reference/Reference.html