Skip to content

FileDrawer v1.8.0

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Sep 06:08
· 3 commits to main since this release
  • 拖入补齐「万物」——图像数据与文件承诺:此前拖入只认 文件 URL / 链接 / 纯文本,三大高频来源全部失守——照片 App 拖图(文件承诺形态)直接收不到、邮件附件大概率同样失败、浏览器拖图退化成 .webloc 链接(要的是那张图,存下的却是个网址)。本次在 InboxStore.url(fromProvider:) 的解析链上补齐两条通道:① 图像载荷优先于随行 URL——浏览器拖图同时携带图像数据与 URL,现在先落图本身(浏览器 TIFF / PNG / GIF、SVG 等凡 conforms to public.image 的注册类型都命中),suggestedName 作命名提示、去重与消毒沿用收件箱既有规则;② 文件承诺 / 文件表示接收——loadFileRepresentation 把照片(HEIC)、照片视频(movie)、音频、PDF 附件等承诺文件按原始文件名收进收件箱(交付的临时 URL 回调内立即移动,跨卷退化为拷贝;系统不 coerce 数据表示的 provider 走原始数据自写文件兜底,扩展名取注册类型惯用扩展)。接收类型表 DropFileLoader.typeIdentifiers 扩为 原四类 + image/movie/audio/pdf 白名单(显式白名单而非笼统 public.data,任意数据型拖拽不会把抽屉误当落点;展开态与收起芯片共用同一 onDrop,芯片同样能接);解析优先级定为 真实文件 URL 引用 > 图像载荷 > 其余媒体承诺 > 链接 webloc > 纯文本(真实文件始终原地引用不搬家)。⌘V 同步支持图像:剪贴板是「拷贝图像」(TIFF / PNG)时直接物化成收件箱图片文件,且优先于随行的图片地址字符串(用户意图是图不是链接)。收件箱物化文件沿用既有生命周期(移除 + 撤销窗口关闭后 sweep 回收)。验证:新增 8 个单测——图像+URL 并存落图不落 webloc、纯图像数据物化、文件承诺(JPEG/PDF 文件表示)按原始名收进收件箱、文件 URL 优先于图像数据、白名单 conformance 判定(HEIC/MPEG-4/MP3 命中、URL/文本/未知类型不命中)、粘贴 TIFF 物化、粘贴图像优先于随行文本、未识别自定义类型返回 nil(原「未识别载荷」用例以 PNG 充当,语义已变,改为真正的未声明类型);220 测试全绿 + release 零警告。实机行为(照片 App / Safari 真拖拽)待人工验证