Ios 如何为发送文件添加更多选项
我创建了通过电子邮件发送或打印文件的代码 但我想添加更多选项,如通过Gmail发送、将文件保存到iBooks、保存到Dropbox等 我增加了两个需求:电子邮件和打印。 我想添加一个Gmail和几个选项 代码如下:Ios 如何为发送文件添加更多选项,ios,swift,Ios,Swift,我创建了通过电子邮件发送或打印文件的代码 但我想添加更多选项,如通过Gmail发送、将文件保存到iBooks、保存到Dropbox等 我增加了两个需求:电子邮件和打印。 我想添加一个Gmail和几个选项 代码如下: func actionMenuViewControllerShareDocument(_ actionMenuViewController: ActionMenuViewController) { let mailComposeViewController = MFMailC
func actionMenuViewControllerShareDocument(_ actionMenuViewController: ActionMenuViewController) {
let mailComposeViewController = MFMailComposeViewController()
if let lastPathComponent = pdfDocument?.documentURL?.lastPathComponent,
let attachmentData = pdfDocument?.dataRepresentation() {
mailComposeViewController.addAttachmentData(attachmentData, mimeType: "application/pdf", fileName: lastPathComponent)
}
}
func actionMenuViewControllerPrintDocument(_ actionMenuViewController: ActionMenuViewController) {
let printInteractionController = UIPrintInteractionController.shared
printInteractionController.printingItem = pdfDocument?.dataRepresentation()
printInteractionController.present(animated: true, completionHandler: nil)
}
代码2
import UIKit
class ActionMenuViewController: UITableViewController {
weak var delegate: ActionMenuViewControllerDelegate?
override func viewDidLoad() {
super.viewDidLoad()
tableView.isScrollEnabled = false
tableView.separatorInset = .zero
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row == 0 {
delegate?.actionMenuViewControllerShareDocument(self)
} else if indexPath.row == 1 {
delegate?.actionMenuViewControllerPrintDocument(self)
tableView.deselectRow(at: indexPath, animated: true)
}
}
protocol ActionMenuViewControllerDelegate: class {
func actionMenuViewControllerShareDocument(_ actionMenuViewController: ActionMenuViewController)
func actionMenuViewControllerPrintDocument(_ actionMenuViewController: ActionMenuViewController)
}
试试下面的方法,你会得到几个选项,比如通过Gmail发送、将文件保存到iBooks、保存到Dropbox等等,这些都是iPhone支持的 比如说,您的文档目录中有一个.pdf文件
var paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory: String = paths[0]
let fullPath: String = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("\("FileName").pdf").absoluteString
let url = URL(fileURLWithPath: fullPath)
let activityItems = [url]
let activityViewController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.view // so that iPads won't crash
self.present(activityViewController, animated: true, completion: nil)
使用
UIActivityViewController
@rmaddy,而不是自己做所有这些。事实上,我不想使用它,只是为了清楚起见,不是给用户一组标准的、灵活的选项,让他们决定如何使用文件,而是给他们一个非标准的、有限的选项选择。最重要的是,你想写更多的代码,而不仅仅是为了让用户的应用体验更糟糕。既然我们已经弄清楚了,你的问题是什么?我们知道您想添加Gmail,但这不是问题。@rmaddy我有一个应用程序,它将修改PDF文件。如果您添加文本并使用UIActivityViewController
并希望通过电子邮件发送,则您添加的文本不会出现。我不知道为什么,但通过我在主题中添加的方式,我可以在发送到电子邮件后或我尝试过的任何地方找到文本。如果您的实际问题与使用UIActivityViewController发送修改过的PDF文件有关,为什么不向他们发布有关该问题的问题?@mostafizur rahman mafi我尝试过您的代码,但没有给我答案任何操作请重试,如果您仍然面临任何问题,请告知我们。我使用了代码,但当我单击“打印”时,例如,PDF文件不出现。请将PDF文件存储到您的iPhone文档目录中,并尝试从该目录中读取该文件。没有新问题