【问题标题】:How can I grab a pdf file from the files app in SwiftUI and import it into my app on an iPhone with iOS如何从 SwiftUI 中的文件应用程序中获取 pdf 文件并将其导入到我在 iOS 上的 iPhone 上的应用程序中
【发布时间】:2021-08-22 21:24:19
【问题描述】:

我希望能够将 pdf 文件从“文件”应用导入到我的应用中,但不知道如何实现。

当您向电子邮件添加附件时,是否有 FilePicker 或类似的东西可以用于与苹果邮件应用程序类似的行为?使用邮件应用程序,当您按下“添加文档”时,它会打开一个文档浏览器,您可以在其中选择一个文件。我相信这是来自 iCloud Drive。

【问题讨论】:

标签: ios xcode swiftui


【解决方案1】:

您可以在 SwiftUI 中使用.fileImporter:

struct ContentView : View {
    @State private var presentImporter = false
    
    var body: some View {
        Button("Open") {
            presentImporter = true
        }.fileImporter(isPresented: $presentImporter, allowedContentTypes: [.pdf]) { result in
            switch result {
            case .success(let url):
                print(url)
                //use `url.startAccessingSecurityScopedResource()` if you are going to read the data
            case .failure(let error):
                print(error)
            }
        }
    }
}

【讨论】:

  • 哇,我不知道这存在。很好的发现!
  • @jnpdx:关于问题主题,假设我们以自定义方式创建了fileImporter 的 QUI,并且它正在工作,我怎样才能获得开始读取文件应用程序构建和渲染的权限我的 QUI 不使用 fileImporter 或其他旧方式。换句话说,假设没有fileImporter,我们创建的自定义视图看起来像fileImporter,我该如何开始从文件应用程序中读取数据?
  • @swiftPunk 据我所知,你不能。操作系统仅允许您访问用户明确选择的文件或应用程序容器(包括其 iCloud Drive 文件夹)中的文件,而不是系统上其他文件的任意列表。
  • @jnpdx:可能我会问这个问题以获得更多信息,是否可以说,苹果不信任我们直接访问文件应用程序,它必须通过一个像fileImporter 这样的安全方式,在这种情况下苹果可以吗?
  • 可能需要在URL上调用这个:developer.apple.com/documentation/foundation/nsurl/…
猜你喜欢
  • 2023-02-24
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
  • 2015-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多