配置模式文件内的内容如何转化为脚本可视化内容显示在手机上

已存档
七月CX · 2 个月前
第 1 条补充
·
2 个月前

配置模式中的参数界面我已经设置好了,但是运行后并没有在手机前端看到可以设置内容的UI界面,是我代码中没有调用这个配置文件么

回答

Hamibot AI
1
· 2 个月前

在 Hamibot 中,你可以通过配置模式使用 JSON 构建一个表单界面,使脚本支持用户输入和调整参数。这些配置会显示为可视化内容(如文本框、选择器等),并在运行脚本时可以动态获取其值。

配置示例

以下是一个基本的 JSON 配置示例,定义了一个文本输入框:

[
  {
    "label": "输入消息",
    "name": "msg",
    "placeholder": "请输入内容",
    "help": "这是帮助说明",
    "type": "text",
    "validation": "required"
  }
]

在脚本中获取配置

保存该配置文件后,可以通过 hamibot.env 获取用户输入的内容:

// 文档地址 https://docs.hamibot.com/
const { msg } = hamibot.env;
toastLog("你输入的消息是: " + msg);

支持的表单类型

Hamibot 支持多种表单类型,例如:

  • 文本输入 (type: "text")
  • 多行文本 (type: "textarea")
  • 下拉选择 (type: "select")
  • 单选 (type: "radio")
  • 复选框 (type: "checkbox")
  • 滑块 (type: "slider")

示例:单选选项

JSON 配置如下:

[
  {
    "label": "选择颜色",
    "name": "color",
    "type": "radio",
    "options": [
      { "label": "红色", "value": "red" },
      { "label": "蓝色", "value": "blue" },
      { "label": "绿色", "value": "green" }
    ],
    "default": "red"
  }
]

脚本中获取选择的值:

// 文档地址 https://docs.hamibot.com/
const { color } = hamibot.env;
toastLog("你选择的颜色是: " + color);

表单验证与默认值

  • 验证规则:通过 validation 字段设置必填项或其他规则。
  • 默认值:可通过 default 设置字段默认值,减少手动输入。

效果展示

当配置完成并运行脚本时,Hamibot 会自动将这些配置转化为手机上的可视化界面,用户可以直接输入或选择参数,脚本则根据用户的输入进行逻辑处理。

如果你需要更复杂的配置,请参考 Hamibot 官方文档


补充回答 1

出现这种情况,通常是因为没有正确启用配置模式或未引用配置参数。

请检查以下几点:

✅ 1. 是否在脚本顶部声明了 "ui" 模式

带有 UI 的脚本必须在第一行加上:

"ui";

否则界面不会显示。

示例:

"ui"; // 必须放在首行
ui.layout(
  <vertical padding="16">
    <text text="这是一个可视化界面" />
    <input id="msgInput" hint="请输入内容" />
    <button text="提交" onClick={() => {
      toast("你输入的是:" + ui.msgInput.text());
    }} />
  </vertical>
);

✅ 2. 是否使用了 ui.layout() 加载布局

如果没有调用 ui.layout() 函数,Hamibot 不会渲染任何 UI 内容。

✅ 3. 配置模式和 UI 模式是两个不同的功能

  • 配置模式:用于定义 JSON 表单参数,运行时会展示一个表单让用户填写。
  • UI 模式("ui":用于构建自定义的、可视化的用户界面。

如果你只是想让用户填写参数,不需要自己设计复杂 UI,应使用配置模式。
如果你希望自定义界面,则使用 "ui" 声明并编写 XML 布局。

✅ 4. 如果使用的是配置模式,请确认是否启用了“启用脚本配置”

打开 Hamibot 控制台 → 编辑脚本 → 点击【脚本配置】→ 勾选 启用脚本配置

如下图结构所示:

[
  {
    "label": "消息内容",
    "name": "message",
    "type": "text",
    "placeholder": "请输入内容"
  }
]

然后在脚本中通过 hamibot.env.message 获取值:

toastLog("你输入的内容是:" + hamibot.env.message);

总结建议

问题 解决方法
没有看到设置界面 确保勾选了“启用脚本配置”
脚本里没显示 UI 确保加了 "ui" 声明,并使用了 ui.layout()
配置不生效 检查变量名是否一致,如 hamibot.env.xxx
不清楚配置与 UI 模式的区别 如果只是需要参数输入推荐用配置模式;如果要自定义界面则用 UI 模式

如果你希望同时使用配置参数和自定义 UI,也可以将两者结合使用,比如在配置中定义默认值,在 UI 中读取这些值并展示。

如有更具体代码可提供,我可以帮你进一步排查问题。

ℹ️ 本回答由 AI 生成,内容仅供参考