我很想通过电子邮件分享我的 iOS 6.0 应用程序的自定义内容。
但由于我的内容需要一些时间才能分享,所以当用户按下“分享”按钮时,我无法立即显示邮件撰写视图。不幸的是,MFMailComposeViewController 从一开始就需要所有附件,所以我必须等待附件才能初始化并显示 MFMailComposeViewController(就像这里建议的那样:UIActivityView attach file to Email)
-- 阅读 Sapan 的回答后进行编辑:我正在寻找的是像 UIActivityViewController 共享时的行为,例如一个尚未创建的视频文件:用户按下共享按钮,UIActivityController 立即出现。附件是在后台创建的,创建不会中断用户的体验。--
我尝试了 UIActivityViewController ,它具有很好的异步 UIActivityItemProvider 功能,但不幸的是,这似乎只适用于具有公共 mime 类型(如图像和视频)的附件。我的自定义 NSData '项目' 被忽略了,不仅因为在 facebook 上分享(这很有意义),而且因为电子邮件分享。或者我在这里做错了什么:
MyUIActivityItemProvider *myCustomDocProvider = [[MyUIActivityItemProvider alloc] initWithPlaceholderItem:[[NSData alloc]init] andCustomInfoToCreateNSDataFrom:customAppInfo];
UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:@[myTextString, myCustomDocProvider] applicationActivities:nil];
[self presentViewController:activityVC animated:YES completion:nil];
我已经在考虑创建自己的自定义电子邮件编写器视图,以便在用户键入时/之后在后台创建附件。但我不想。我喜欢我在 HIG 中读到的“UI 元素的一致性”的想法。
我能做些什么?