操作

Interactions 面板用于定义流程元素如何响应事件——例如点击、元素出现以及表单提交。对于每个事件,你可以分配一个或多个操作:在页面间导航、显示或隐藏元素、打开 URL、设置变量等。使用条件可根据用户数据自定义流程。

每个交互都遵循三段式链路:

  1. Element(元素):触发交互的屏幕组件,可以是按钮、测验答案、输入框或其他任何内容。
  2. Trigger(触发器):激活逻辑的事件,例如点击、元素出现或表单提交。
  3. Action(动作):流程响应时执行的任务。一个触发器可以按顺序执行多个动作。

设置交互

设置交互的步骤如下:

  1. 在画布上或 Layers 面板中选中一个元素。
  2. 在右侧切换到 Interactions 面板,点击 Add trigger
Add trigger button
  1. Button triggers 区域,选择触发类型
Trigger type selection
  1. 点击 Add action,再点击操作名称,然后在 Edit action 窗口的下拉菜单中选择动作类型
Add action button
  1. 根据你选择的动作类型配置动作属性。
  2. 如有需要,点击 Add action 为同一触发器添加更多动作。

触发器类型

触发器会在响应用户行为、元素状态变化或页面加载时触发。On screen appear 是通用触发器;其余均为特定元素的触发器。

触发器触发时机支持的元素
On screen appear页面加载时所有元素
On tap用户点击该元素时按钮问卷选项开关倒计时视频
On changed用户更改输入值时(输入文字、选择日期或时间)所有输入元素
On submit用户按下键盘上的 Enter 或完成键提交文本输入时文本输入元素
On timer end倒计时元素归零时倒计时
On playback finished视频播放结束时视频
对于没有内置交互的元素(例如 Loader),On screen appear 是唯一可用的触发器。

操作类型

任何导航操作(即将用户跳转到其他界面的操作)都应始终排在操作列表的最后。排在它之后的操作(如”Set Variable”)可能不会执行,因为应用已经切换到了新界面。

这是在屏幕之间切换用户的主要操作,会将用户带到指定的目标屏幕。

对于此操作,你只需设置目标屏幕即可。如需启用动态导航,请参阅导航与分支条件操作部分。

Navigate to screen

将用户推进到流程中的下一个屏幕。适用于线性流程——即编辑器中屏幕的排列顺序与用户实际看到的顺序一致。

将用户导航到历史记录中的前一个页面,而非序列中的前一个页面。

打开 URL

使用内联链接在正文中插入链接。

打开指定的网址。用于将用户跳转到应用原生界面以外的网页、文章或社交媒体主页。 对于此操作,你可以配置两项设置:

  • URL address:设置一个 URL 地址。此外,你还可以将其设为动态地址——例如,根据用户的测验答案或其提交的数据将用户导航到不同页面。为此,点击 Variable icon 并选择要使用的变量。
  • Open in external browser:定义外部链接的打开方式。默认情况下,链接会在应用内浏览器中打开,以将用户留在应用内。如果希望在外部浏览器中打开链接,请勾选 Open in external browser 复选框。
Open URL

关闭流程

关闭当前流程。

显示/隐藏元素

显示或隐藏屏幕上的特定元素。

此操作会覆盖 Design 面板中 Visibility 设置的初始状态。如果 Visibility 设置为 Hide,则 Show 操作会使该元素显示出来。

ShowHide 操作若未指定目标元素,将阻止预览和发布。请选择一个目标元素或移除该操作。

显示提示框

显示一个原生系统弹窗。用户必须点击 Ok 才能继续。

对于提示框,你需要设置其 TitleMessage。这两个字段均支持使用变量来实现动态内容。点击 Variable icon 并选择你想使用的变量即可。

Show alert 动作的配置为空或不完整时,会阻止预览和发布。请填写全部字段,或删除该动作。

Show alert

设置变量

更新流程中变量的值。在添加此操作之前,请先在左侧的 Variables 面板中创建变量(参见变量)。

点击 Add variable,按需设置变量及其值。

未配置赋值的 Set variable 操作会阻止预览和发布。请至少配置一个赋值,或删除该操作。

Set variable

购买

直接从用户引导中的按钮或交互触发购买流程。使用此功能可让用户无需离开当前流程即可完成订阅或购买产品。 您可以为此操作配置两种行为:

  • 应用内商店:发起原生购买。将 Product 设置为指定产品,或设置为 products.selectedProduct 以使用用户在当前屏幕上的选择。
  • 网页支付:将用户跳转至网页付费墙,而非触发原生购买。当您希望在应用外处理交易(例如基于网页的订阅优惠)时,可使用此选项。

购买操作如果没有指定目标产品付费墙网址,将阻止预览和发布。请指定目标或移除该操作。

Purchase action configuration in the Edit action window

恢复购买

在设备上触发恢复购买流程。当用户之前在其他设备上购买了订阅,或重新安装应用后需要恢复访问权限时,可点击此按钮。

此操作无需任何配置——Adapty 会通过原生商店流程完成恢复。

Restore purchases 操作也已在 Links 按钮预设中的 Restore 链接上预先配置(请参阅设置购买)。

自定义操作

自定义操作会触发一个具名的 Action ID,由你的应用代码来处理。当内置操作类型无法满足需求时,可以使用这种方式。

Adapty 负责提供触发时机,具体行为由你的应用来实现:

  1. 在编辑工具中,为元素的交互指定一个 Action ID
  2. 当用户触发该交互时,流程会将这个 ID 传递给你的应用。
  3. 你的应用匹配到该 ID 后,执行对应的代码逻辑。

设置自定义操作

  1. Edit action 窗口中,为其指定一个 Action ID——你的应用能识别的字符串(例如 show_discount)。
  2. 在应用代码中,为该 Action ID 实现一个处理程序。实现细节和代码示例请参阅处理付费墙操作

没有设置 Action IDCustom 操作会阻止预览和发布。请为其指定 Action ID 或删除该操作。

编辑操作窗口中包含 Action ID 字段的自定义操作配置

自定义动作的用途

自定义动作本身不执行任何操作。你在编辑工具中设置一个静态 Action ID,当应用代码收到该 ID 时,再由代码决定具体的处理逻辑。以下所有使用场景都遵循同一模式:在流程中分配 ID,然后在代码中处理它。

  • 触发应用内事件:触发类似 viewed_special_offer 的 ID,当应用收到该事件时将其记录到你的分析系统中。
  • 请求系统权限:触发类似 request_location 的 ID,然后在应用中调用系统权限弹窗。Adapty 不会显示该弹窗——由你的应用来触发。
  • 启动原生认证:触发类似 login_google 的 ID,然后展示你自己的登录界面。流程无法直接为用户完成登录。
  • 执行业务逻辑:触发类似 apply_discount 的 ID,然后在你这边解锁内容或更改应用状态。
  • 将测验答案传递给应用:为每个选项分配不同的 Action ID(例如 goal_weight_lossgoal_muscle),然后在代码中读取该 ID。使用该 ID 设置自定义用户属性,以便后续进行市场细分。由于 Action 只携带固定 ID,这是上报用户选择的唯一方式——流程无法直接发送所选值。

自定义操作在用户选择选项的瞬间触发。如果用户更改了答案,流程会再次触发新的 Action ID。你的应用将按顺序接收两个事件——例如,先是 goal_weight_loss,然后是 goal_muscle。请确保你的处理函数具备幂等性,以便最新的信号生效。

自定义操作的限制

自定义操作是静态的。Action ID 在构建流程时就已固定——它无法读取变量用户输入。操作触发时,你的应用只会收到该 ID,而不会收到用户填写的邮箱、手机号或其他输入内容。输入字段会作为变量保留在流程内部,用于分支逻辑和个性化处理。如需在应用中使用这些数据,请通过你自己的 UI 或 API 来收集。

条件操作

通过条件操作,可以根据用户数据将流程分叉到不同的路径。

常见使用场景包括:

  • 屏幕上有一个测验,希望根据用户的回答将其导航到不同的屏幕。此时,为按钮添加一个条件操作即可。
  • 希望向不同用户群体提供不同的产品和优惠。将它们放在不同的屏幕上,并为导航按钮设置相应的条件。
  • 希望跳过已在上一个应用会话中完成过教程的用户的某些步骤。 条件动作的工作方式类似于 if / else-if / else 链。应用从上到下依次读取规则,遇到第一个匹配项即停止:
  1. IF:流程检查主要条件。
    • 结果为 True?流程立即执行 THEN 动作并停止。
    • 结果为 False?流程跳过,进入下一节。
  2. ELSE IF:可在此处添加额外检查(例如,“如果不是 Premium 用户,该用户是否处于试用期?”)。
  3. ELSE(兜底):如果以上规则均未匹配,流程将执行此最终节中的动作。
  • 如果一条规则已添加但未分配任何动作,即使条件匹配也不会执行任何操作。
  • 不完整的规则(缺少运算符或值)会阻止预览和发布

对于每条规则,选择要评估的变量和要执行的动作。每条规则可以设置多个动作。

流程只会执行一条规则——第一条匹配的规则。如果需要同时执行 IFELSE IF,请将两个动作都添加到 IF 中。

要了解如何使元素可选并将其组织成组以用于条件中,请参阅可选元素和组

Conditional actions

故障排查

任何缺少必填字段的操作都会阻止预览和发布。完整列表请参阅保存与发布流程