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

How to use UIDocumentPickerViewController to pick a custom type?

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

例如这样的事情:

UIDocumentPickerViewController(documentTypes: [String("*.toc")], in: .import)

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

结尾

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

file -I filename.toc

返回:

filename.toc: text/html; charset=us-ascii

因为这是一个 "text/html" 文件,我尝试使用:

UIDocumentPickerViewController(documentTypes: [String(kUTTypeText)], in: .import)

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

kUTTypeText 用于 text/plain。 text/html.

你想要 kUTTypeHTML

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

中使用该 mime 类型

有关在您的应用中设置导出的 UTI 的详细信息,请参阅 Uniform Type Identifiers Overview

如果要允许任何文件,请使用 kUTTypeItem