用例开发跨应用交互Drag and drop概述

注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

概述

拖放功能目前仅对同时在注册中包含Foundry和Gotham的客户可用。未来将会更广泛地提供。

拖放功能允许用户通过将数据从一个应用程序拖到另一个应用程序来轻松移动数据。您可能在将图像拖放到文件夹中时使用过此功能,这是一个常见的例子。我们将把可以拖至或拖出的组件称为拖放集成点。通过仅添加一个拖放集成点,您可以将您的应用程序与其他支持拖放功能的应用程序连接,从而创建新的工作流程。

拖放功能是一个广泛接受的网络标准,允许应用程序之间无缝集成。本文件涵盖了Palantir特定的拖放建议和指南,使得数据能够在Palantir平台之间拖入和拖出。这包括在Gotham、Foundry和用户开发的应用程序之间拖动。有关Palantir特定拖放功能的更多信息,请参阅Palantir媒体类型

在Gotham和Foundry之间拖放

核心概念

为了实现拖放功能,您需要熟悉四个主要概念:

  1. DataTransfer对象
  2. 媒体类型
  3. 拖动区域
  4. 放置区域

DataTransfer对象

DataTransfer对象就像一个容器,当您在计算机上从一个地方移动或复制东西到另一个地方时,它保存信息。DataTransfer对象(也称为"DataTransfers")用于拖放操作,例如将图片从一个文件夹移动到另一个文件夹,或复制粘贴操作,如复制文本并将其粘贴到文档中。在拖放的上下文中,DataTransfer对象也被称为拖动负载。

DataTransfers可以保存不同种类的信息,例如文本或图像。DataTransfer对象最初是专为拖放而创建的,但现在也用于其他函数。请参阅MDN关于DataTransfers的文档 ↗以了解更多信息。

媒体类型

媒体类型,前称为MIME类型,表示所传输数据的性质。媒体类型用于DataTransfer对象以识别正在传输的数据种类。例如,包含文本"Hello"的DataTransfer可能具有text/plain媒体类型,允许接受文本作为有效媒体类型的组件访问该文本。请参阅MDN关于媒体类型的文档 ↗以了解更多信息。

有关一般拖放功能的完整MDN接受的媒体类型列表 ↗可用。有关Palantir特定功能的更多上下文,请参阅下方的Palantir媒体类型

Palantir媒体类型

Palantir媒体类型表示Palantir平台特有的概念。向您的应用程序添加Palantir特定的拖放支持,将使用户能够在您的应用程序和Palantir平台之间移动数据。我们已经存在接受标准媒体类型的拖放区域,但我们建议在构建拖放工作流时将Palantir媒体类型添加到您的拖动负载中,以增加互操作性。

Palantir平台具有在拖动负载中添加Palantir媒体类型或接受这些媒体类型的拖动负载的拖放区域。例如,object媒体类型表示Foundry对象资源标识符(RID)数据,这不是一个普遍使用的媒体类型,如image/jpeg。相反,object媒体类型表示一个Palantir特有的概念,在应用程序之间传输此类数据需要Palantir媒体支持。

目前支持的Palantir媒体类型包括objects对象集

拖动区域

拖动区域是文档对象模型(DOM) ↗上的交互元素,允许用户“抓取”数据并将其传输到其他地方。当用户启动拖动时,会触发dragstart事件。拖动区域通过监听DOM元素上的dragstart事件并向DataTransfer中添加额外数据来工作。

示例拖动区域。

放置区域

放置区域是DOM上的交互元素,允许用户通过将数据“放置”到元素上来传输数据。放置区域通过监听DOM元素上的ondrop事件并在事件触发时从事件的DataTransfer中访问信息来工作。为了获得最佳的用户体验,放置区域应该进行样式化,以在拖放操作期间提供视觉反馈。放置区域可以非必填只接受某些媒体类型的子集,因此视觉反馈关于媒体类型对于放置区域是有效还是无效,使得拖放功能更加直观和用户友好。

示例放置区域。

拖放的工作原理

综上所述,拖放交互是一个广泛接受的网络标准,由DataTransfer驱动,DataTransfer保存用户正在拖动的数据。当拖动区域被初始拖动时,数据被添加到DataTransfer中,并附带对应于所传输数据类型的媒体类型。然后可以将这些数据拖到可以访问拖动负载的放置区域。放置区域可以根据拖动负载的媒体类型选择性地接受数据,使您能够定制用户可用的拖放交互。

要了解拖放功能背后的技术细节,请遵循实施拖放集成点教程。