更新记录

1.0.2(2026-07-27)

1.0.1(2026-06-05)

支持Android、iOS、鸿蒙三端获取手机中文件操作


平台兼容性

uni-app(5.0)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - - 5.0 12 9
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(5.0)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 5.0 12 9 -

szy-filepath 三端文件选择器

iOS · Android · HarmonyOS · 三端统一 API,选择设备文件获取路径、名称、大小等信息

平台支持

平台 实现方式 特性
🍎 iOS UIDocumentPickerViewController 多选、文件信息
🤖 Android Intent.ACTION_OPEN_DOCUMENT 多选、文件信息
🦕 HarmonyOS DocumentViewPicker 多选、最大50文件

安装

插件市场搜索 szy-filepath,点击安装

快速开始

import { getFilePath } from '@/uni_modules/szy-filepath'

getFilePath({
  callback: (result) => {
    if (result.length === 0) {
      console.log('用户取消选择或未选中文件')
      return
    }
    result.forEach(file => {
      console.log('文件:', file.fileName)
      console.log('路径:', file.filePath)
      console.log('大小:', file.fileSize)
      console.log('后缀:', file.fileExtension)
    })
  }
})

API 参考

getFilePath(options)

参数 类型 说明
options.callback (result: FileResult) => void 选择完成回调

返回值 FileResultItem

字段 类型 说明
fileURL string 文件 URI
filePath string 文件路径
fileName string 文件名
fileSize string 文件大小(字节)
fileExtension string 文件扩展名

HarmonyOS 专项说明

Context 机制

插件内置双通道 Context 获取,无需在 EntryAbility 中调用 setGlobalContext

通道 方式 说明
主通道 UTSHarmony.onAppAbilityWindowStageCreate → Window 引用 调用时从 Window 获取原生 Context
备用通道 setGlobalContext(UIAbilityContext) 兼容手动注入场景

⚠️ 关键实现细节:UTSHarmony 回调中仅存储 Window 引用,不立即取 Context(此时 UIContent 尚未加载,返回 nullptr)。getHostContext() 在用户点击按钮时才执行,此时页面已渲染完毕。 若无法自动获取,首次使用时需引导用户手动前往系统设置开启一次:

设置 → 应用 → 应用管理 → 找到本应用 → 权限 → 身体活动 → 开启

仅需操作一次,开启后传感器持续可用。

权限

插件 module.json5 声明了 READ_MEDIA 权限。DocumentViewPicker 通过系统选择器 UI 完成权限校验,无需手动申请。

已知限制

问题 说明
选择器未弹出 查看日志确认 Window 引用已保存;确保 App 完全启动后再调用
文件大小为 "0" HarmonyOS URI 无法直接获取文件大小
文件路径与 fileURL 相同 HarmonyOS 平台特性

故障排查

问题 可能原因 解决
鸿蒙选择器不弹出 Context 获取失败 确保 UTSHarmony 回调已触发,日志含 Window 引用已保存
iOS 无回调 用户取消 callback([]) 正常行为
Android 无回调 权限问题 检查 READ_EXTERNAL_STORAGE 权限

版本历史

1.0.2 (2026-07-27)

  • 🦕 鸿蒙 Context 自给 — UTSHarmony Window 引用模式,getHostContext() 延迟调用
  • 🏗️ 双通道保底 — 主通道 UTSHarmony + 备用通道 setGlobalContext
  • 🐛 修复选择器秒返空结果 — Context 获取时序修复
  • 🐛 模块权限补齐 — module.json5 补充 READ_MEDIA 权限声明

1.0.1 (2026-06-05)

  • 🎉 首次三端发布
  • ✅ iOS / Android / HarmonyOS 文件选择器
  • ✅ 三端统一 API,支持多选

许可

MIT License — 作者: szy

隐私、权限声明

1. 本插件需要申请的系统权限列表:

获取读取手机文件权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。