带有NSURL的UIActivityViewController到音频文件只显示空投

Jos*_*eph 7 ios uiactivityviewcontroller ios7

我正在尝试使用a UIActivityViewController来共享音频文件(.aac).它是我写入沙盒文档目录的临时文件.

NSURLinitWithActivityItem:方法中传递了一个.

[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:^{
...
}];
Run Code Online (Sandbox Code Playgroud)

当我按下分享按钮时,它需要几秒钟,弹出活动表,唯一的选项是Airdrop.

如何才能显示电子邮件或iMessage等其他选项?是否有回调方法,以便我可以确定"共享"何时完成,以便我可以再次删除临时文件?

有没有办法让我添加音频文件而不必先将其写入磁盘?我不能以某种方式只是传递NSData对象?

vir*_*ndh 4

如果您尝试共享实际文件,那么您需要使用UIDocumentInteractionController,它是为共享整个文件而设计的。UIActivityViewController适用于文本,也可能是图像。

如果您需要向文件发送消息,而不是仅仅在另一个应用程序中打开它,那么请考虑UIActivityUIDocumentInteractionController消息创建一个自定义,为邮件创建另一个自定义。参见mfmailcomposeviewcontrollerMFMessageComposeViewController

请参阅(苹果开发人员):https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDocumentInteractionController_class/Reference/Reference.html