大数跨境

管理后台 app.intent.link 上的应用意图现在以全屏导航方式打开

管理后台 app.intent.link 上的应用意图现在以全屏导航方式打开 Shopify电商独立站
2026-08-19
1
导读:当 Sidekick 调用在 admin.app.intent.link 扩展目标上声明的应用程序意图时,Shopify 管理后台现在会将商家导航至你的扩展程序的 URL,并以完整页面的形式呈现,这与

当 Sidekick 调用在 admin.app.intent.link 扩展目标上声明的应用意图时,Shopify 管理后台现在会将商家导航至你的扩展的 url 作为完整页面,这与 Shopify 自身管理后台意图的行为方式一致。此前,相同的意图始终会在商家当前页面上方以覆盖层形式打开。此功能已对所有商店上线,不受 API 版本限制,且无需对扩展的配置、意图架构或工具进行任何更改。使用 admin.app.intent.render 目标的扩展不受影响。

变更内容

应用意图支持不同的展示方式。迄今为止,每个应用意图都以意图模态框的形式出现,即在商家当前页面上方的覆盖层,使商家保持在 Sidekick 流程中。admin.app.intent.link 意图现在改用完整页面导航,从而使应用意图与管理后台意图(即启动 Shopify 原生编辑器的意图)的现有展示方式保持一致。这也符合该目标文档化的行为,即引导商家前往你应用中用于最佳页面渲染操作的 URL。有关实现细节,请参阅 Use extensions to surface app actions。

存在一种情况,即仍会使用覆盖层:如果商家在当前页面上有未保存的更改,则意图将在模态框中打开,而不是导航离开,从而避免丢失正在进行的工作。您的扩展程序无需对这些情况进行特殊处理——两种呈现方式均使用相同的路由、有效载荷和工具。

Sidekick 与您的应用之间的契约保持不变。您的路由仍然从 `shopify.intents.request.value` 读取调用有效载荷,这是一个实时信号,当您的应用未在意图工作流内运行时为 null,并在每次调用意图时更新。您仍然从 URL 打开的路由中使用 `shopify.tools.register` 注册工具处理器,并且仍然通过 `shopify.intents.response.ok()`、`shopify.intents.response.error()` 或 `shopify.intents.response.closed()` 解析意图。 shopify.intents.request.value,这是一个实时信号,当 null 您的应用未在意图工作流内运行时为 null,并在每次调用意图时更新。您仍然使用 shopify.tools.register 从 URL 打开的路由中 url 注册工具处理器,并且仍然通过 shopify.intents.response.ok()`shopify.intents.response.ok()` shopify.intents.response.error()、`shopify.intents.response.error()` shopify.intents.response.closed()或 `shopify.intents.response.closed()` 解析意图。


Note: 针对 <code>admin.app.intent.render</code> 的扩展目前以内联覆盖层形式渲染,因此 UI 扩展应用操作的行为与之前相同。


如果你在此公告发布前注意到此变更并将其报告为回归问题,那么新行为是预期的。你的扩展上的 type、target 和 url 继续按声明的方式正常工作。

受影响对象

这适用于具有 admin_link 扩展且其定位包含 admin.app.intent.link 的应用。它适用于所有 API 版本和所有商店,没有功能标志、作用域或设置可供选择加入或退出。

以下内容不受影响:

  • 针对 admin.app.intent.render 的扩展。
  • 你的应用使用 intents.invoke() 调用的管理后台意图,用于启动 Shopify 原生编辑器。这些属于独立系统,其展示方式未发生变化。
  • 未声明应用意图的应用。

如果你的应用同时声明了这两个目标,则只有 admin.app.intent.link 意图会发生变化。

为何重要

商家现在将进入你应用中你声明的真实页面,拥有你自己的布局和导航,而不是受限的覆盖层。对于 admin.app.intent.link 设计用于执行的操作,商家现在直接在你应用已渲染的页面上进行操作。

操作指南

无需采取任何操作即可保持扩展正常运行。受此变更影响的声明是你 shopify.extension.toml 中的 admin.app.intent.link 目标:

[[extensions.targeting]] target = "admin.app.intent.link" url = "/app/campaigns/{id}/edit" tools = "./tools.json" instructions = "./instructions.md"

此示例展示了典型的 admin.app.intent.link 配置:目标、管理后台打开的路由以及定义工具和指令的文件。你无需为此新行为更改此结构。

如果您的应用没有具有该目标的扩展程序,则对您没有任何影响。如果有,请验证 url 作为独立页面运行:

  1. 确认路由在全宽模式下正确渲染。假设窄覆盖层的布局可能需要进行调整。该路由在模态框中也应能正确渲染,因为这是未保存更改的商家将看到的展示方式。
  2. 确认该路由从 shopify.intents.request.value 读取调用负载。由于这是一个实时信号,您还可以订阅它以在请求发生变化时做出响应。
  3. 确认该路由在挂载时调用 shopify.tools.register,以便 Sidekick 能够在商家停留在页面上时调用您的工具。
  4. 确认在商家完成、失败或取消操作时,您解决了意图(intent)。
  5. 在带有 shopify app dev 的开发商店中进行测试,然后要求 Sidekick 执行该操作。

当管理员导航至用您模式中的值替换路径而非字面量 {id} 的已声明 url 时,您将知道更新已成功,且您的工具会在页面打开期间响应,Sidekick 也会在您解决意图后报告结果。要查看模态回退效果,请在管理界面中开始编辑表单,并在保存之前调用该操作。

相关文档

  • 构建 Sidekick 应用扩展
  • Intents API 参考
  • Tools API 参考
【声明】内容源于网络
0
0
Shopify电商独立站
1234
内容 7146
粉丝 0
Shopify电商独立站 1234
总阅读87.4k
粉丝0
内容7.1k