如何使用 UIDocumentPickerViewController 选择自定义类型?

Log*_*gan 6 import ios swift uidocumentpickervc

我从云端导入文件时遇到问题。我正在处理一个我实际上没有创建的自定义文件类型。所以我不知道实际的扩展类型是什么(例如 com.example.pdf)。文件以 .toc 结尾,那么有没有办法我只能接受以 .toc 结尾的文件?

例如这样的事情:

UIDocumentPickerViewController(documentTypes: [String("*.toc")], in: .import)
Run Code Online (Sandbox Code Playgroud)

如果这是不可能的,有没有办法允许选择任何文件?从那里我可以只检查最后 4 位数字并让用户知道文件必须以 .toc 结尾?

为了尝试获取有关文件类型的更多信息,我还在终端中运行了以下命令:

file -I filename.toc
Run Code Online (Sandbox Code Playgroud)

返回:

filename.toc: text/html; charset=us-ascii
Run Code Online (Sandbox Code Playgroud)

因为这表示它是一个“text/html”文件,我尝试使用:

UIDocumentPickerViewController(documentTypes: [String(kUTTypeText)], in: .import)
Run Code Online (Sandbox Code Playgroud)

但是,这不允许我选择文件...有人有什么想法吗?

rma*_*ddy 4

kUTTypeText用于文本/纯文本。你想要kUTTypeHTMLtext/html。

iOS 可能不同意“toc”文件是text/html。您可能应该将适当的“导出的 UTI”添加到您的 Info.plist 中,为“toc”扩展定义适当的 mime 类型。然后将该 mime 类型与您的UIDocumentPickerViewController.

有关在应用程序中设置导出的 UTI 的详细信息,请参阅统一类型标识符概述。

如果您想允许任何文件,请使用kUTTypeItem.