Attach object using iOS6 UIActivityViewController

后端 未结 3 1598
灰色年华
灰色年华 2020-12-16 23:35

I\'m migrating to use the UIActivityViewController for sharing in iOS6, but I can\'t figure out how to create email attachment objects to be included when sharing by email.<

相关标签:
3条回答
  • 2020-12-16 23:53

    For anyone wondering why their files aren't being shared using UIActivityViewController to apps like DropBox and other generic file handling applications, what you really want is a UIDocumentInteractionController.

    Use it something like this:

    class ViewController {
        var openInController:UIDocumentInteractionController!
    
        init() {
            openInController = UIDocumentInteractionController(URL: docURL)
        }
    
        func shareDoc {
            openInController.presentOptionsMenuFromRect(CGRectZero, inView: self.view, animated: true)
        }
    }
    
    0 讨论(0)
  • 2020-12-16 23:56

    You have very limited control over UIActivityViewController, but if you're attaching well-know mime types, I found you can get it to work correctly by providing the associated file extension in a file URL. For example, if your attachment is a vCard, use the ".vcf" extension in the file URL:

    NSString *docsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    // The file extension is important so that some mime magic happens!
    NSString *filePath = [docsPath stringByAppendingPathComponent:@"vcard.vcf"];
    NSURL *fileUrl     = [NSURL fileURLWithPath:filePath];
    
    [data writeToURL:fileUrl atomically:YES]; // save the file
    
    // Now pass the file URL in the activity items array
    UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:
        @[@"Here's an attached vCard", fileUrl] applicationActivities:nil];
    [vc presentModalViewController:avc animated:YES];
    
    0 讨论(0)
  • 2020-12-17 00:17

    From what I can tell you can't do this with the UIActivityViewController -- I can't even manage to make it present HTML content for the message body -- so you may be better off using SLComposeViewController.

    0 讨论(0)
提交回复
热议问题