为什么配置文件设置了默认值,但是第一次进配置的时候每个项目的值都是空的?[
{
"label": "运行模式",
"name": "mode",
"type": "radio",
"default": "restock",
"options": {
"timed": "定时上新模式 - 精确到毫秒的定时抢购",
"restock": "补货模式 - 持续监控库存状态"
},
"help": "选择脚本运行模式:定时模式适合新品上架,补货模式适合补货抢购"
},
{
"label": "开始时间",
"name": "startClock",
"type": "text",
"default": "09:59:59.500",
"help": "定时上新的开始时间,格式:HH:MM:SS.sss(支持毫秒)",
"validation": "required"
},
{
"label": "选择整盒",
"name": "wantWholeBox",
"type": "checkbox",
"default": true,
"help": "是否自动选择整盒选项(如果商品有整盒规格)"
},
{
"label": "购买数量",
"name": "quantity",
"type": "number",
"default": 1,
"help": "设置购买数量(1-24件)",
"validation": "required|min:1|max:24"
},
{
"label": "配送方式",
"name": "delivery",
"type": "radio",
"default": "home",
"options": {
"home": "送到家 - 快递配送到家",
"store": "到店取 - 门店自提"
},
"help": "选择配送方式"
},
{
"label": "刷新间隔 (ms)",
"name": "refreshGapMs",
"type": "number",
"default": 450,
"help": "补货模式的页面刷新间隔,单位毫秒(建议300-800ms)",
"validation": "required|min:100|max:2000"
},
{
"label": "提交间隔 (ms)",
"name": "submitGapMs",
"type": "number",
"default": 600,
"help": "点击支付按钮的间隔时间,单位毫秒(建议400-800ms)",
"validation": "required|min:200|max:1500"
},
{
"label": "控件超时 (ms)",
"name": "widgetTimeoutMs",
"type": "number",
"default": 500,
"help": "控件查找的超时时间,单位毫秒(建议300-800ms,影响脚本响应速度)",
"validation": "required|min:100|max:2000"
},
{
"label": "自动停止",
"name": "autoStop",
"type": "checkbox",
"default": false,
"help": "成功进入微信支付页面后是否自动停止脚本"
}
]

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

我的意思是在Hamibot后台的脚本配置中没有值

回答

Hamibot AI
1
· 2 个月前

这个问题通常是由于配置文件虽然设置了默认值,但在脚本首次加载时没有正确读取这些默认值导致的。在 Hamibot 中,表单的默认值需要在 hamibot.env 中生效,你需要确保以下几点:

  1. 确保你在脚本中通过 hamibot.env 正确访问了配置项。
  2. 在表单中设置的默认值应直接体现在 JSON 配置中,并且在脚本运行时被正确解析。

下面是一个示例代码,展示如何在脚本中使用配置项并确保默认值生效:

// 文档地址 https://docs.hamibot.com/

var mode = hamibot.env.mode;
var startClock = hamibot.env.startClock;
var wantWholeBox = hamibot.env.wantWholeBox;
var quantity = hamibot.env.quantity;
var delivery = hamibot.env.delivery;
var refreshGapMs = hamibot.env.refreshGapMs;
var submitGapMs = hamibot.env.submitGapMs;
var widgetTimeoutMs = hamibot.env.widgetTimeoutMs;
var autoStop = hamibot.env.autoStop;

toastLog("运行模式: " + mode);
toastLog("开始时间: " + startClock);
toastLog("选择整盒: " + wantWholeBox);
toastLog("购买数量: " + quantity);
toastLog("配送方式: " + delivery);
toastLog("刷新间隔 (ms): " + refreshGapMs);
toastLog("提交间隔 (ms): " + submitGapMs);
toastLog("控件超时 (ms): " + widgetTimeoutMs);
toastLog("自动停止: " + autoStop);

如果你发现默认值仍然为空,请检查以下内容:

  • 确保你保存了配置文件,并且上传到了正确的脚本 ID 下。
  • 检查是否在脚本运行之前手动更改过配置,这可能会覆盖默认值。
  • 如果你是在 UI 模式下测试,确保你重新加载了脚本或重启了 Hamibot 应用。

如果问题依然存在,建议发送邮件到 support@hamibot.cn 寻求进一步帮助。


补充回答 1

Hamibot 的脚本配置在首次打开时显示为空白,这是正常现象。表单的默认值不会直接显示在后台配置界面中,而是会在脚本运行时被读取和使用。

如果你在配置文件中设置了默认值,但希望它们在脚本运行时生效,可以放心继续操作。只要脚本正确引用了 hamibot.env 中的变量,这些默认值就会在脚本运行时自动应用。

例如,你可以通过以下代码验证默认值是否生效:

// 文档地址 https://docs.hamibot.com/

toastLog("当前 msg 值: " + hamibot.env.msg);

如果运行结果打印出空白,则说明你尚未设置 msg 的值;但如果脚本中使用了默认值,它将在运行时生效。

如果你想确保配置项在用户界面中显示默认值,请确认 Hamibot 的 JSON 表单配置格式是否正确,并且每个字段的 default 属性是否已正确设置。

如果问题持续存在,建议发送邮件到 support@hamibot.cn 获取进一步帮助。

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