UIActivityViewController with NSURL to audio file only shows airdrop

I am trying to use a UIActivityViewController to share an audio file (.aac). It is a temporary file that I have written to the sandboxed documents directory.

I pass a NSURL in the initWithActivityItem: method.

[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:^{
...
}];

When I press the share button it takes a few seconds and the activity sheet pops up with the only option being Airdrop.

How can I get other options like email or iMessage to show up? Is there a call back method so that I can determine when the "sharing" is finished, so that I can delete the temporary file again?

Is there a way for me to add the audio file without having to write it to disk first? Can't I somehow just pass the NSData object?


If you are trying to share the actual file, then you need to use UIDocumentInteractionController , it is designed for sharing entire files. UIActivityViewController is meant for text and maybe an image.

If you need to message your file rather than just open it another app, then consider making a custom UIActivity for UIDocumentInteractionController and another for Messages and Another for Mail. See mfmailcomposeviewcontroller and MFMessageComposeViewController

See(Apple Developer): https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDocumentInteractionController_class/Reference/Reference.html

链接地址: http://www.djcxy.com/p/77596.html

上一篇: 试图使用Chef引导Windows服务器

下一篇: UIActivityViewController与NSURL音频文件只显示空投