如何处理通过 'Open in...' 从另一个应用程序发送到我自己的 iOS 应用程序的文件?
How to handle a file sent with 'Open in...' from another app to my own iOS app?
我正在开发一个读取 csv 文件并在 tableViewController 中显示其内容的应用程序。使用 Xcode 进行测试时,我在项目目录中有一个示例文件,我完全能够使用其位置路径读取该文件。我遇到的问题是我希望能够获取任何 csv 文件(通过某种方法发送给我),单击 'Open in' 按钮并将文件发送到我的应用程序。
我的应用程序显示在我可以将文件发送到的可用应用程序中。我的问题是之后会发生什么?当我选择将它发送到我的应用程序时,它会切换到我的应用程序,然后从那里,我不知道如何接收文件并读取它以提取其内容。文件去了哪里以及如何与之交互?
这是在您的 AppDelegate
中处理的,更准确地说,您将 URL 传递给文档,然后您在可选函数中从那里处理它,例如:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
do {
let data = try Data(contentsOf: url)
// Do something with the file
} catch {
print("Unable to load data: \(error)")
}
return true
}
更多信息:https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623112-application
我正在开发一个读取 csv 文件并在 tableViewController 中显示其内容的应用程序。使用 Xcode 进行测试时,我在项目目录中有一个示例文件,我完全能够使用其位置路径读取该文件。我遇到的问题是我希望能够获取任何 csv 文件(通过某种方法发送给我),单击 'Open in' 按钮并将文件发送到我的应用程序。
我的应用程序显示在我可以将文件发送到的可用应用程序中。我的问题是之后会发生什么?当我选择将它发送到我的应用程序时,它会切换到我的应用程序,然后从那里,我不知道如何接收文件并读取它以提取其内容。文件去了哪里以及如何与之交互?
这是在您的 AppDelegate
中处理的,更准确地说,您将 URL 传递给文档,然后您在可选函数中从那里处理它,例如:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
do {
let data = try Data(contentsOf: url)
// Do something with the file
} catch {
print("Unable to load data: \(error)")
}
return true
}
更多信息:https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623112-application