K2.05.1inter-application drag and drop设计研究

拖放是桌面的跨应用数据通道

别名: 跨应用拖放 · 桌面拖放通道 · inter-app DnD

概念解释

在桌面上把一个对象从一扇窗口拖进另一扇——文件从文件夹进邮件、表格进幻灯片、色块进绘图——这是一条跨应用数据通道,不是应用内部的排序手势。拖放把「这份数据、从这个应用、交给那个应用」做成一次看得见的空间动作。剪贴板做同一件事,但不占空间、不指出目的地。

这条只谈桌面把拖放当成应用之间的管道。拾起、移动、放下怎么判别,是输入原语的事。

机制

桌面窗口同时可见,源和目标可以并排。人用空间指向代替「先复制、再切应用、再粘贴」:对象跟着指针走,目的地在松手那一刻被指定。Hutchins、Hollan 与 Norman 把这种「对象在空间里被搬动」称作直接操纵的典型。跨应用能成立,是因为操作系统提供一块公共的拖放剪贴板:源应用把数据的一种或几种表示放上去,目标应用在指针进入自己时决定收不收。通道是系统的,不是某一应用的私有协议。

没有这条通道,桌面的并排优势只剩「看着」,数据仍要绕道剪贴板或导出文件。人会感到两个应用「连不上」——窗口挨着,对象却过不去。移动端没有稳定的并排窗口,跨应用拖放即使存在也不是主通道;桌面把它做成了主通道之一,所以应用拒绝加入(只能内部拖、不能拖出去或拖进来)等于拒绝桌面形态。

怎么研究

跨应用拖放研究把任务做成「把这份对象交到那个应用」,比较拖放、复制粘贴、导出再打开三条路径的时间、错误和主观直接性。现场观察记录人在真实桌面上何时选择拖、何时退回剪贴板(窗口没并排、目标太小、跨屏过缝)。

自变量:源与目标是否同时可见、数据类型、是否跨屏、通道(拖放 / 剪贴板 / 文件)。 因变量:完成时间、松手位置错误、中途改用另一通道的次数、主观「数据过去了吗」。

实验室把两个窗口预先摆好,会高估拖放的被选率;真实桌面上目标窗口常常被挡住,人会先改用剪贴板。

边界

浏览器沙盒、商店分发的沙盒应用可能被系统禁止接收某些拖入,通道在权限上被切断,不是应用忘了实现。远程桌面和虚拟机要过两层拖放桥,失败更常见。纯全屏应用没有「另一扇可见窗口」,跨应用拖放没有空间可指。触屏笔记本在平板姿态下窗口往往不能并排,这条通道会暂时消失。

怎么落地

  • 把应用接到系统拖放通道上:可被拖出的对象在按下拖动后进入系统剪贴板,可接收的区域在指针进入时作出反应。
  • 不要只实现应用内部排序就声称「支持拖放」;至少覆盖与文件夹、浏览器、邮件这一类系统级目标的来回。
  • 验证:从系统文件夹拖一个文件进应用,再从应用拖一个对象到文件夹或邮件草稿。两条路都要能过去。挡住目标窗口再试一次,人改用复制粘贴应仍能完成——拖放是主通道,不是唯一通道。

延伸

  • 同组K2.05.2 需声明可接受的数据类型 · K2.05.3 拖放失败需给出原因
  • 相邻K2.10 剪贴板与系统服务 · C1.08 拖放 · J3.07 拖拽的替代
  • 站内检索inter-application drag and drop · desktop data transfer · drag pasteboard

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/K2.05.1