0 · 环境信息
判断 API 可用性的前提:内核版本、是否安全上下文。Via 用的是系统 WebView(华为机型多为自研内核分支),版本差异极大。
1 · 特性探测总表 纯检测,不触发系统弹窗
仅检测 API 是否存在(不实际调用),✅ 存在 / ❌ 不存在 / ⚠ 存在但需调用才能确认。
A · 传统目录选择 input[webkitdirectory]
Chromium 系最老的目录选择方案。重点看:点了会不会弹出目录选择器、webkitRelativePath 是否带回子目录路径、input.webkitEntries 能否递归遍历。
B · File System Access API
桌面 Chromium 的现代方案,Android 版 Chrome / WebView 官方长期未实现 picker,所以这里的失败结果本身就是重要结论。
C · 拖拽文件夹
三种取件方式对比:webkitGetAsEntry()(老,能递归) / getAsFileSystemHandle()(新) / getAsFile()(只给文件,丢目录结构)。手机上能否拖拽是另一回事,若拖不动请忽略本区。
⬇︎
把文件夹或文件拖到这里
(移动端通常不支持拖放,可用下方按钮模拟:读取 DataTransferItem 原型能力)
D · 真实上传(目录结构保留 + 字节校验)
把 A / B / C 区选中的文件真正 POST 到后端,后端回显每个文件的相对路径、大小与 SHA-256,前端同算法比对,确认「传上去的字节没坏」。
E · 周边能力
OPFS、存储配额、Web Share、剪贴板读文件、旧版 webkitRequestFileSystem、Blob/流读取。
📋 诊断报告
汇总全部结果,可直接复制粘贴给他人。