用户需要分享文件、保存图片、视频等用户文件时,开发者可以通过系统预置的 文件选择器(FilePicker) ,实现该能力。通过Picker访问相关文件,将拉起对应的应用,引导用户完成界面操作,接口本身无需申请权限。picker获取的uri只具有临时权限,获取持久化权限需要通过 FilePicker设置永久授权 方式获取。
根据用户文件的常见类型,选择器(FilePicker)分别提供以下选项:
-
PhotoViewPicker :适用于图片或视频类型文件的选择与保存(该接口在后续版本不再演进)。请使用 PhotoAccessHelper的PhotoViewPicker 来选择图片文件。请使用 安全控件创建媒体资源 。
-
DocumentViewPicker :适用于文件类型文件的选择与保存。DocumentViewPicker对接的选择资源来自于FilePicker, 负责文件类型的资源管理,文件类型不区分后缀,比如浏览器下载的图片、文档等,都属于文件类型。
-
AudioViewPicke :适用于音频类型文件的选择与保存。AudioViewPicker目前对接的选择资源来自于FilePicker。
选择图片或视频类文件
PhotoViewPicker 在后续版本不再演进,请使用 PhotoAccessHelper的PhotoViewPicker 来选择图片文件。
选择文档类文件
- 导入选择器模块和基础文件API模块。
import { picker } from '@kit.CoreFileKit';
import { fileIo as fs } from '@kit.CoreFileKit';
import { common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
- 创建文件类型、文件选择选项实例。
const documentSelectOptions = new picker.DocumentSelectOptions();
// 选择文档的最大数目(可选)
documentSelectOptions.maxSelectNumber = 5;
// 指定选择的文件或者目录路径(可选)
documentSelectOptions.defaultFilePathUri = "file://docs/storage/Users/currentUser/test";
// 选择文件的后缀类型,若选择项存在多个后缀名,则每一个后缀名之间用英文逗号进行分隔(可选),后缀类型名不能超过100
documentSelectOptions.fileSuffixFilters = ['.png', '.txt', '.mp4'];
//选择是否对指定文件或目录授权,true为授权,当为true时,defaultFilePathUri为必选参数,拉起文管授权界面;false为非授权,拉起常规文管界面(可选)
documentSelectOptions.authMode = true;
- 创建 文件选择器DocumentViewPicker 实例。调用 select() 接口拉起FilePicker应用界面进行文件选择。
let uris: Array<string> = [];
let context = getContext(this) as comm