文档选择器
DocumentPicker 类为 iOS 的文档选择器提供接口,允许用户在 Files App 中选择文件或目录,或者将文件导出到 Files App。这对于需要访问用户文件、共享内容或将资源有序保存在指定目录中的脚本非常有用。
类型定义
PickFilesOption
用于配置 pickFiles 文件选择功能的选项。
-
initialDirectory(可选)- 类型:
string - 描述: 指定文档选择器初次显示的目录。
- 类型:
-
types(可选)- 类型:
string[] - 描述: 要在文档选择器中显示的统一类型标识符(UTI)数组。更多信息可参考 Uniform Type Identifiers。
- 类型:
-
shouldShowFileExtensions(可选)- 类型:
boolean - 描述: 是否显示文件扩展名。默认为
true。
- 类型:
-
allowsMultipleSelection(可选)- 类型:
boolean - 描述: 是否允许选择多个文件。默认为
false。
- 类型:
PickFileBookmarkOptions
用于选择文件并保存为持久 bookmark 的选项。
-
preferredName(可选)- 类型:
string - 描述: 首选 bookmark 名称。如果省略,会使用所选文件名。如果名称已存在,会提示用户重新命名。
- 类型:
-
initialDirectory(可选)- 类型:
string - 描述: 指定文档选择器初次显示的目录。
- 类型:
-
types(可选)- 类型:
string[] - 描述: 要在文档选择器中显示的统一类型标识符(UTI)数组。
- 类型:
-
shouldShowFileExtensions(可选)- 类型:
boolean - 描述: 是否显示文件扩展名。默认为
true。
- 类型:
PickDirectoryBookmarkOptions
用于选择目录并保存为持久 bookmark 的选项。
-
preferredName(可选)- 类型:
string - 描述: 首选 bookmark 名称。如果省略,会使用所选目录名。如果名称已存在,会提示用户重新命名。
- 类型:
-
initialDirectory(可选)- 类型:
string - 描述: 指定文档选择器初次显示的目录。
- 类型:
DocumentPickerBookmarkResult
保存 bookmark 后返回的结果。
-
path- 类型:
string - 描述: 用户选择的文件或目录路径。
- 类型:
-
bookmarkName- 类型:
string - 描述: 实际保存的 bookmark 名称。如果用户因为重名而重新命名,它可能不同于
preferredName。
- 类型:
ExportFilesOptions
用于通过 exportFiles 导出文件的选项。
-
initialDirectory(可选)- 类型:
string - 描述: 指定文档选择器初次显示的目录。
- 类型:
-
files- 类型:
Array<{ data: Data; name: string }> - 描述: 要导出的文件数组。数组中的每个文件对象必须包含:
data: 文件的Data数据对象。name: 文件名。
- 类型:
类方法
DocumentPicker.pickFiles(options?: PickFilesOption): Promise<string[]>
允许用户从 Files App 中选择文件。
参数
options(可选):PickFilesOption- 用于文件选择的配置选项。
返回值
- 一个 Promise,当用户完成选择后,返回文件路径数组(
string[])。
示例
DocumentPicker.pickDirectory(initialDirectory?: string): Promise<string | null>
允许用户从 Files App 中选择一个目录。
参数
initialDirectory(可选):string- 文档选择器初次显示的目录。
返回值
- 一个 Promise,解析后返回用户所选目录的路径(
string),如果用户取消选择,则返回null。
示例
DocumentPicker.pickFileBookmark(options?: PickFileBookmarkOptions): Promise<DocumentPickerBookmarkResult | null>
允许用户从 Files App 中选择一个文件,并保存为持久的 security-scoped bookmark。
pickFiles 只会为当前脚本运行启动访问权限,并在脚本销毁或调用 stopAcessingSecurityScopedResources() 时释放。pickFileBookmark 会保存 bookmark,后续脚本运行可以通过 FileManager.bookmarkedPath(bookmarkName) 访问这个文件。
参数
options(可选):PickFileBookmarkOptions- 用于文件选择和 bookmark 命名的配置选项。
返回值
- 一个 Promise,解析后返回
{ path, bookmarkName };如果用户取消选择或取消命名,则返回null。
示例
DocumentPicker.pickDirectoryBookmark(options?: PickDirectoryBookmarkOptions): Promise<DocumentPickerBookmarkResult | null>
允许用户从 Files App 中选择一个目录,并保存为持久的 security-scoped bookmark。
pickDirectory 只会为当前脚本运行启动访问权限,并在脚本销毁或调用 stopAcessingSecurityScopedResources() 时释放。pickDirectoryBookmark 会保存 bookmark,后续脚本运行可以通过 FileManager.bookmarkedPath(bookmarkName) 访问这个目录。
参数
options(可选):PickDirectoryBookmarkOptions- 用于目录选择和 bookmark 命名的配置选项。
返回值
- 一个 Promise,解析后返回
{ path, bookmarkName };如果用户取消选择或取消命名,则返回null。
示例
DocumentPicker.exportFiles(options: ExportFilesOptions): Promise<string[]>
将文件导出到 Files App。
参数
options:ExportFilesOptions- 用于配置文件导出的选项,包括文件数据和文件名。
返回值
- 一个 Promise,解析后返回导出的文件路径数组(
string[])。
示例
DocumentPicker.stopAcessingSecurityScopedResources(): void
放弃对安全范围资源(Security-Scoped Resources)的访问,例如通过文档选择器访问到的文件或目录。当不再需要访问这些资源时,请调用此方法以确保您的应用能够高效地管理资源。
