gpt4 book ai didi

iOS:如何在已经显示邮件撰写 View 时在后台创建/准备自定义电子邮件附件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:47:23 25 4
gpt4 key购买 nike

我很乐意通过电子邮件分享我的 iOS 6.0 应用程序的自定义内容。

但是由于我的内容在共享之前需要一些时间来准备,所以我无法在用户按下“共享”按钮时立即显示邮件撰写 View 。不幸的是,MFMailComposeViewController 从一开始就需要所有附件,所以我必须等待附件才能初始化并显示 MFMailComposeViewController(就像这里建议的那样:UIActivityView attach file to Email)

-- 阅读 Sapan 的回答后编辑:我正在寻找的是共享时像 UIActivityViewController 这样的行为,例如尚未创建的视频文件:用户按下共享按钮,UIActivityController 立即出现。附件在后台创建,创建不会中断用户体验。 --

我尝试使用 UIActivityViewController 及其出色的异步 UIActivityItemProvider 功能,但不幸的是,这似乎只适用于具有公共(public) 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];

我已经在考虑创建我自己的自定义电子邮件编辑器 View ,以便我可以在用户键入时/之后在后台创建附件。但我不想。我喜欢我在 HIG 中读到的“UI 元素的一致性”的想法。

我能做什么?

最佳答案

您可以创建如下方法,然后使用 [self performSelectorInBackground:@selector(sendMail)]; 调用它

-(void) sendMail
{
// Prepare the data

// Attach the data
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
[picker addAttachmentData:myData mimeType:@"<YOUR-MIME-TYPE>" fileName:@"Filename"];

// Show compose view controller on the main thread
dispatch_async(dispatch_get_main_queue(), ^(void) {
// Fill out the email body text
NSString *emailBody = @"Body";
[picker setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:picker animated:YES];
});
}

关于iOS:如何在已经显示邮件撰写 View 时在后台创建/准备自定义电子邮件附件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13350603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com