iOS 7 UIActivityViewController电子邮件附件

问题描述 投票:5回答:2

我在这里查看了很多帖子,有许多在线教程/示例代码,我很困惑。在我的应用程序中,我可以正常显示iOS7原生提供的UIActivityController以及适合我的应用程序的共享选项(AirDrop和邮件)。

我遇到的特定问题是,当用户选择通过邮件共享选项时,将保存的文档附加到电子邮件中。邮件正文设置为文本,但附件为MIA。相关代码为:

//生成要为当前显示的记录共享的XML文件...NSURL * url = [self createShareFile];

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[@"Data shared from my app.", url] applicationActivities:nil];

// Filter out the sharing methods we're not interested in....
controller.excludedActivityTypes = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook,
                                UIActivityTypePostToWeibo,
                                UIActivityTypeMessage,
                                UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
                                UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll,
                                UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr,
                                UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo];

// Now display the sharing view controller.
[self presentViewController:controller animated:YES completion:nil];

我想念的是什么?我的文件正在正确创建,内容正确,并且NSURL对象包含文件的正确路径。

谢谢!

email ios7 attachment uiactivityviewcontroller airdrop
2个回答
6
投票

问题已解决.....

我原始帖子中发布的代码是100%准确的。问题最终以我构建在我的createShareFile方法中返回的NSURL的方式出现:

不正确(原始方式):

return [NSURL URLWithString:[docFile stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

正确的方法:

return [NSURL fileURLWithPath:docFile];

我一修复此问题,即使使用我的自定义文件类型,它也开始起作用。


0
投票

我有一个类似的问题,其中邮件应用程序是我唯一无法添加pdf的应用程序。这是我在Swift中的代码以及处理iPad弹出窗口的代码。

var filesToShare = [Any]()
filesToShare.append(self.myUrl)

let activityViewController = UIActivityViewController(activityItems: filesToShare as [Any], applicationActivities: nil)
present(activityViewController, animated: true)

// for iPad -> where to present on screen
if let popOver = activityViewController.popoverPresentationController {
    //action button being my top left icon
    popOver.barButtonItem = self.actionButton
}

我的问题是如何以不同的方式处理URL

© www.soinside.com 2019 - 2024. All rights reserved.