5

我在这里查看了一堆帖子,无数在线教程/示例代码,我很困惑。在我的应用程序中,我可以毫无问题地显示 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 对象包含文件的正确路径。

谢谢!

4

2 回答 2

6

问题解决了.....

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

不正确(原始方式):

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

正确方法:

return [NSURL fileURLWithPath:docFile];

一旦我解决了这个问题,它就开始工作了,即使是我的自定义文件类型。

于 2014-02-19T22:23:34.860 回答
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

于 2019-12-19T19:38:37.623 回答