鸿蒙Next中picker.pick方法如何使用

在鸿蒙Next开发中,我想使用picker.pick方法选择文件,但不知道具体参数如何配置。官方文档描述比较简略,能否提供一个完整的使用示例?比如如何设置文件类型过滤、回调函数如何处理返回结果?另外这个方法在选择多文件时有什么限制吗?

2 回复

在鸿蒙Next中,picker.pick 就像个“选妃”方法,调用它就能弹出一个选择器。比如选个文件或日期,代码大概长这样:

import picker from '@ohos.file.picker';

let documentPicker = new picker.DocumentPicker();
documentPicker.pick().then((uriList) => {
  console.info('选中的文件URI:' + JSON.stringify(uriList));
}).catch((err) => {
  console.error('选妃失败:' + err);
});

记住先申请权限,不然系统会“翻白眼”拒绝你!

更多关于鸿蒙Next中picker.pick方法如何使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中,picker.pick 方法用于调用系统选择器(如文件选择器、日期选择器等),允许用户从设备中选择特定类型的数据。以下是常见使用场景和示例代码:

1. 文件选择器

用于选择单个或多个文件:

import { picker } from '[@kit](/user/kit).CoreFileKit';

// 选择单个文件
let filePicker = new picker.FilePicker();
filePicker.pick().then((fileResult) => {
  console.log('Selected file URI:', fileResult[0]); // 返回文件URI数组
}).catch((err) => {
  console.error('File selection failed:', err);
});

// 选择多个文件
let filePickerOptions = {
  selectCount: 5, // 最多选择5个文件
  fileTypes: ['.jpg', '.png'] // 限制文件类型
};
filePicker.pick(filePickerOptions).then((fileResult) => {
  fileResult.forEach((uri) => console.log('File URI:', uri));
});

2. 日期选择器

用于选择日期或时间:

import { picker } from '[@kit](/user/kit).CoreFileKit';

let datePicker = new picker.DateTimePicker();
datePicker.pick({
  type: picker.DateTimePickerType.DATE, // 选择日期
  start: new Date('2020-01-01'),
  end: new Date('2030-12-31')
}).then((date) => {
  console.log('Selected date:', date); // 返回Date对象
});

3. 联系人选择器

从通讯录中选择联系人:

import { picker } from '[@kit](/user/kit).ContactsKit';

let contactPicker = new picker.ContactPicker();
contactPicker.pick().then((contacts) => {
  console.log('Selected contacts:', contacts); // 返回联系人信息数组
});

注意事项:

  • 权限申请:部分功能(如文件、联系人选择)需在 module.json5 中声明权限,例如:
    {
      "module": {
        "requestPermissions": [
          { "name": "ohos.permission.READ_CONTACTS" }
        ]
      }
    }
    
  • 异步处理pick 方法返回Promise,需使用 then/catchasync/await 处理结果。
  • 参数配置:根据选择器类型传递选项(如文件类型、日期范围等)。

根据具体需求调整参数即可。

回到顶部