扩展开发概述

Adobe Experience Platform Launch 的主要目标之一是创建一个开放的生态系统,在该生态系统中,Platform Launch 核心工程团队之外的工程师能够通过 Platform Launch 展示其他功能。这是通过 Reactor 扩展来实现的。用户将某个扩展安装在 Platform Launch 资产上后,该扩展的功能就会供该资产的所有用户使用。

本文档概述了不同扩展类型的主要组件,并提供了更多的文档链接,可指导您完成扩展开发过程。

库模块

库模块是由扩展提供的可重用代码段,在 Platform Launch 运行时库中发出。根据您正在开发的是 Web 扩展还是 Edge 扩展,可用模块类型及其使用案例会有所不同。有关每种扩展类型的模块的概述,请参阅以下小节:

Web 扩展模块

在 Web 扩展中,规则是通过事件触发的,如果满足给定的条件集,规则即可执行特定的操作。有关更多信息,请参阅有关 Web 扩展中的模块流的概述。

除了 Adobe 提供的核心模块之外,您还可以在 Web 扩展中定义以下库模块类型。

注意

有关在 Web 扩展中实施库模块所需格式的详细信息,请参阅模块格式概述

事件类型

规则事件是在规则触发之前必须发生的某项活动。

例如,扩展可提供“手势”事件类型,用于监控特定鼠标或触摸手势的发生。一旦该手势发生,事件逻辑就会触发规则。

事件类型通常包括 (1) Platform Launch 应用程序中显示的视图,通过该视图,用户可以修改事件的设置,以及 (2) Platform Launch 运行时库中发出的库模块,用于解释设置并监控特定活动的发生。

了解更多

条件类型

在发生规则事件后,将评估规则条件。所有条件必须返回 true,规则才会继续处理。例外情况是用户将条件明确放入“例外”存储段中,在这种情况下,该存储段内的所有条件都必须返回 false,规则才能继续处理。

例如,扩展可以提供“视区包含”条件类型,Platform Launch 用户可在其中指定 CSS 选择器。在客户端网站上评估条件时,扩展将能够找到与 CSS 选择器匹配的元素,并返回其中是否有任何元素包含在用户视区中。

条件类型通常包括 (1) Platform Launch 应用程序中显示的视图,通过该视图,用户可以修改条件的设置,以及 (2) Platform Launch 运行时库中发出的库模块,用于解释设置并评估条件。

了解更多

操作类型

规则操作是在发生规则事件并且条件通过评估后执行的操作。

例如,扩展可以提供“显示支持聊天”操作类型,该操作类型可以显示支持聊天对话框,以帮助在注销时可能遇到困难的用户。

操作类型通常包括 (1) Platform Launch 应用程序中显示的视图,通过该视图,用户可以修改操作的设置,以及 (2) Platform Launch 运行时库中发出的库模块,用于解释设置并执行操作。

了解更多

数据元素类型

数据元素本质上是页面上数据段的别名,无论这些数据是在查询字符串参数、Cookie、DOM 元素中还是在其他位置找到。数据元素可以被规则引用,并充当访问这些数据段的抽象。当数据的位置在将来发生更改(例如,从 DOM 元素的 innerHTML 更改为 JavaScript 变量的值)时,可以重新配置单个数据元素,而引用该数据元素的所有规则都可以保持不变。

凭借数据元素类型,用户能够配置数据元素,以便以特定方式访问数据段。例如,扩展可以提供“本地存储项”数据元素类型,Platform Launch 用户可在其中指定本地存储项名称。当数据元素被规则引用时,扩展将能够使用用户在配置数据元素时提供的本地存储项名称来查找本地存储项值。

数据元素类型通常包括 (1) Platform Launch 应用程序中显示的视图,通过该视图,用户可以修改数据元素的设置,以及 (2) Platform Launch 运行时库中发出的库模块,用于解释设置并检索数据段。

了解更多

共享模块

共享模块是由一个扩展公开以供另一个扩展访问的模块。对于在扩展之间进行通信而言,这是一个非常有用的机制。例如,扩展 A 可以异步加载某个数据段,并通过 promise 将其提供给扩展 B。

即使从未从其他扩展内部调用共享模块,库中也会包含共享模块。为了避免不必要地增加库大小,您应该谨慎公开将作为共享模块的内容。

共享模块没有视图组件。

了解更多

Edge 扩展模块

在 Edge 扩展中,规则是通过条件检查触发的,如果这些检查通过,规则将执行特定的操作。有关更多信息,请参阅有关 Edge 扩展中的模块流的概述。

您可以在 Edge 扩展中定义您自己的库模块。这些模块可以分为以下类型:

注意

有关在 Edge 扩展中实施库模块所需格式的详细信息,请参阅模块格式概述

条件类型

在发生规则事件后,将评估规则条件。所有条件必须返回 true,规则才会继续处理。例外情况是用户将条件明确放入“例外”存储段中,在这种情况下,该存储段内的所有条件都必须返回 false,规则才能继续处理。

例如,扩展可以提供“视区包含”条件类型,Platform Launch 用户可在其中指定 CSS 选择器。在客户端网站上评估条件时,扩展将能够找到与 CSS 选择器匹配的元素,并返回其中是否有任何元素包含在用户视区中。

条件类型通常包括 (1) Platform Launch 应用程序中显示的视图,通过该视图,用户可以修改条件的设置,以及 (2) Platform Launch 运行时库中发出的库模块,用于解释设置并评估条件。

了解更多

操作类型

规则操作是在规则条件通过评估后执行的操作。

例如,扩展可以提供“显示支持聊天”操作类型,该操作类型可以显示支持聊天对话框,以帮助在注销时可能遇到困难的用户。

操作类型通常包括 (1) Platform Launch 应用程序中显示的视图,通过该视图,用户可以修改操作的设置,以及 (2) Platform Launch 运行时库中发出的库模块,用于解释设置并执行操作。

了解更多

数据元素类型

本质上,数据元素是页面上数据段的别名,与在服务器接收的事件内发现的数据位置无关。数据元素可以被规则引用,并充当访问这些数据段的抽象。当数据的位置将来发生更改(例如,包含该值的事件键发生更改)时,可以重新配置单个数据元素,而引用该数据元素的所有规则都可以保持不变。

数据元素类型通常包括 (1) Platform Launch 应用程序中显示的视图,通过该视图,用户可以修改数据元素的设置,以及 (2) Platform Launch 运行时库中发出的库模块,用于解释设置并检索数据段。

了解更多

扩展配置

扩展配置是指收集来自用户的全局设置的方式。例如,假定某个扩展允许用户使用“发送信标”操作发送信标,并且该信标必须始终包含帐户 ID。我们不想在用户每次配置“发送信标”操作时都询问其帐户 ID,这会给用户增添一些麻烦。取而代之的是,扩展应从扩展配置视图中询问一次帐户 ID。每次发送信标时,“发送信标”操作库模块都可从扩展配置中提取帐户 ID 并将其添加到信标。

用户将扩展安装到 Platform Launch 资产后,将向用户显示扩展配置视图。如果未完成扩展配置,用户将无法完成扩展的安装。

扩展配置由一个视图组件组成,该组件会将随后在 Platform Launch 运行时库中发出设置导出为纯对象。

了解更多

扩展结构

扩展由文件目录组成。这些文件的结构概述如下所示。有关文件内容的详细信息,请参阅其他部分。

extension.json 文件必须存在于目录的根中。此外,该文件将描述扩展的组成以及某些文件在目录中的位置。这与 npm 中的 package.json 文件有一些相似之处。

每个库模块(要在 Platform Launch 运行时库中发出的逻辑)必须是其自身的文件,其内容遵循 CommonJS 模块标准。例如,如果要构建“发送信标”操作类型,则必须有一个包含发送信标逻辑的文件。此文件的内容将在 Platform Launch 运行时库中发出。您可以将其称为 sendBeacon.js。文件在目录中的位置并不重要,因为 extension.json 将描述该文件的位置。

每个视图必须是一个 HTML 文件,该文件应能够加载到 Platform Launch 应用程序内的 iframe 中。视图必须包含由 Platform Launch 提供的脚本,并符合小型 API,才能与应用程序进行通信。对于在视图中使用的库,目前没有任何限制。换言之,您可以使用 jQuery、Underscore、React、Angular、Bootstrap 或其他库。但是,我们确实希望您可以让扩展具有与应用程序相似的外观。

建议将所有与视图相关的文件(HTML、CSS、JavaScript)放置在与库模块文件分离的单个子目录中。在 extension.json 中,您将说明此视图子目录的位置。然后,Launch 将从其 Web 服务器为此子目录(仅此子目录)提供服务。

On this page

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now