iOS 开发中,有时咱们需求支撑导入和翻开体系/自定义类型的文件。例如,咱们或许需求支撑从邮件、iCloud Drive 或其它应用程序翻开 PDF 或 Word 文档,或许咱们或许需求支撑导入以自定义格式保存的数据文件。在本文中,咱们将介绍如何支撑这些功能。

支撑体系类型文件的导入与翻开

iOS 体系供给了许多默认支撑的文件类型,例如 PDF、Word、Excel、PPT、图片、音频、视频等。在咱们的应用程序中,假如需求支撑这些体系类型文件的导入与翻开,咱们需求进行以下过程:

第一步:在 Xcode 的 Target 设置中挑选 Add Document Type,然后增加自己需求支撑的文件类型,并定义相关的文件扩展名和 MIME 类型。

第二步:在 Info.plist 文件中增加 CFBundleDocumentTypes 键,并在其间增加支撑的文档类型相关信息,包括文档类型标识符(CFBundleTypeName)、MIME 类型(LSItemContentTypes)、文件扩展名(CFBundleTypeExtensions)等。

第三步:为文件处理办法增加支撑类型的过滤器。

当用户从其它应用程序中翻开文件时,iOS 体系会自动查询应用程序中哪些已注册的文档类型与该文件类型匹配。假如找到了匹配的类型,则会将文件翻开并传递给应用程序进行处理。

支撑体系或自定义类型文件的导入与翻开

有时候,咱们或许需求支撑自定义类型的文件导入与翻开。在这种情况下,咱们需求进行以下过程:

第一步:在翻开文件时,运用UIDocumentPickerViewController弹出文档挑选器,并设置与应用程序自定义类型相对应的支撑文档类型

if #available(iOS 14.0, *) {
    let apkType = UTType("com.coocaa.apk")
    let docPickerVC = UIDocumentPickerViewController(forOpeningContentTypes: [.pdf, apkType!])
    docPickerVC.delegate = self
    present(docPickerVC, animated: true)
} else {
    let types = ["com.coocaa.apk"]
    let docPickerVC = UIDocumentPickerViewController(documentTypes: types, in: .open)
    present(docPickerVC, animated: true)
}

第二步:完成UIDocumentPickerDelegate协议办法来处理选中的文件

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
    guard let url = urls.first, let fileName = url.lastPathComponent.removingPercentEncoding else {
        return
    }
    // 处理选中的文件
}

定论

支撑体系/自定义类型文件的导入与翻开关于应用程序而言是非常重要的。在本文中,咱们介绍了如安在 iOS 应用程序中支撑体系/自定义类型文件的导入与翻开。这些办法能够帮助咱们轻松地完成这些功能,并大大提高咱们的应用程序的实用性。