脚本发布,用户安装后,如果是免费的我是否可以随时不让用户使用?
第 1 条补充
· 2 个月前
只要我提交新版本规则,用户就会自动更新吗?
第 2 条补充
· 2 个月前
我初始版本需要怎么写才能必须更新才能使用?
第 3 条补充
· 2 个月前
如果我的脚本下架,是否可以不让用户使用了?
第 4 条补充
· 2 个月前
如果使用付费服务,当用户到期的时候我脚本下架了,是否用户可以无法续费?
回答
根据 Hamibot 的脚本发布机制,免费用户的使用权限由脚本代码逻辑控制。你可以在脚本中加入以下逻辑来控制使用权限:
// 文档地址 https://docs.hamibot.com/
const { name: planName, onFreeTrial } = hamibot.plan;
// 检查是否允许使用
if (planName === '免费版' && !yourCustomCondition) {
toast("当前版本已停止使用,请联系开发者");
hamibot.exit();
}
// 你的脚本代码...
hamibot.exit();
开发者可以通过:
- 更新脚本代码加入限制逻辑
- 提交新版本审核通过后
- 用户更新到新版本时会自动应用新规则
注意:已安装旧版本的用户仍可继续使用未更新的旧版本脚本。若需要强制停止所有用户使用,需联系 Hamibot 官方处理。
补充回答 1
用户提交新版本后不会触发自动更新,需用户手动操作更新:
// 文档地址 https://docs.hamibot.com/
// 强制更新检测逻辑示例
const currentVersion = 2; // 当前最新版本号
if (typeof storage.get('installedVersion') === 'undefined') {
storage.put('installedVersion', 1); // 初始化存储
}
if (storage.get('installedVersion') < currentVersion) {
dialogs.build({
title: '发现新版本',
content: '请更新到最新版本继续使用',
positive: '立即更新',
negative: '退出'
}).on('positive', () => {
app.openUrl('https://hamibot.com/marketplace/your-script'); // 你的脚本市场地址
hamibot.exit();
}).show();
}
// 主业务代码...
hamibot.exit();
实现要点:
- 通过本地存储记录用户安装版本
- 每次启动检查版本号
- 发现旧版本时弹窗引导用户更新
- 用户必须手动前往市场更新脚本
注意:此逻辑需要从初始版本就内置在代码中才能生效,且旧版本用户若未更新仍可继续使用原有功能。
补充回答 2
在初始版本中必须内置强制更新检测机制,推荐这样编写基础框架:
// 文档地址 https://docs.hamibot.com/
const currentVersion = 1; // 初始版本号
const minAllowedVersion = 1; // 最低允许运行的版本号
// 初始化版本检测
if (typeof storage.get('appVersion') === 'undefined') {
storage.put('appVersion', currentVersion);
} else {
// 每次启动校验版本有效性
if (storage.get('appVersion') < minAllowedVersion) {
dialogs.build({
title: '版本已过期',
content: '请更新到最新版本',
positive: '前往更新',
negative: '退出'
}).on('positive', () => {
app.openUrl('https://hamibot.com/marketplace/YOUR_SCRIPT_ID');
hamibot.exit();
}).on('negative', () => {
hamibot.exit();
}).show();
exit();
}
}
// 主程序入口
toast("程序正常运行");
// 你的业务代码...
hamibot.exit();
关键实现逻辑:
- 版本存储初始化:使用
storage.put()
在首次运行时写入初始版本号 - 双版本控制:
currentVersion
标记脚本实际版本minAllowedVersion
控制最低可运行版本
- 更新策略:
- 当需要强制更新时,发布新版本时将
minAllowedVersion
设置为大于旧版本的值 - 用户运行旧版本时会触发更新检测
- 当需要强制更新时,发布新版本时将
- 阻断机制:检测到旧版本立即弹窗并退出脚本运行
更新操作流程:
- 开发者发布新版本时:
const currentVersion = 2; // 新版本号
const minAllowedVersion = 2; // 要求最低版本同步提升
- 用户旧版本启动时会因
storage.get('appVersion') < minAllowedVersion
触发更新流程 - 用户必须点击更新才能继续使用
注意:此方案要求从初始版本就必须包含该检测逻辑,且后续每个版本都要更新currentVersion
和minAllowedVersion
值才能生效强制更新机制。
补充回答 3
根据 Hamibot 的机制,脚本下架本身不会直接影响已安装用户的使用。要实现下架后彻底禁用脚本,需要预先在代码中设计在线验证机制:
// 文档地址 https://docs.hamibot.com/
const SERVER_CHECK_URL = 'https://your-server.com/api/check'; // 你的验证接口
// 在线状态检测
threads.start(function() {
try {
const res = http.get(SERVER_CHECK_URL, {
headers: { 'User-Agent': 'Hamibot-Script' }
});
if (res.statusCode !== 200 || res.body.string() !== 'active') {
toast("脚本已停用");
hamibot.exit();
}
} catch (e) {
toast("服务不可用");
hamibot.exit();
}
});
// 主业务逻辑...
hamibot.exit();
实现强制停用需要:
- 部署验证服务:搭建可控制启停状态的 web 服务
- 验证逻辑:
- 每次启动脚本时检查服务端状态
- 服务端返回非 active 状态时自动退出
- 容错处理:
- 添加网络请求超时机制(建议 5-10 秒)
- 捕获网络异常情况强制退出
停用操作流程:
- 修改服务器接口返回
inactive
或其他非许可状态 - 所有用户再次运行脚本时会自动检测到服务不可用
- 执行
hamibot.exit()
终止脚本运行
注意:
- 此方案需要额外维护服务器
- 首次运行需要联网才能验证
- 用户断网情况下会无法使用(根据业务需求可调整逻辑)
补充回答 4
当脚本下架后,用户续费流程会受到直接影响:
-
下架后的续费机制:
- 已订阅用户到期后无法通过常规渠道续费(脚本不再出现在市场)
- 正在订阅中的用户可继续使用至当前周期结束
- 到期后订阅自动终止且无法恢复
-
开发者注意事项:
// 文档地址 https://docs.hamibot.com/
// 建议在下架前增加到期提醒
const subscriptionEndDate = new Date('2025-12-31'); // 替换为实际到期时间
if (new Date() > subscriptionEndDate) {
dialogs.build({
title: '服务终止通知',
content: '本脚本已停止维护,请迁移到新版本',
positive: '查看公告'
}).on('positive', () => {
app.openUrl('https://your-domain.com/announcement');
hamibot.exit();
}).show();
exit();
}
-
推荐处理方案:
- 下架前30天通过脚本内置通知推送停服公告
- 提供迁移指引(如新脚本的安装链接)
- 在 Hamibot 脚本描述页更新停服说明
-
系统限制:
- 下架后所有关联的定价计划自动失效
- 用户端的【续费】按钮会变为不可用状态
- 历史订单保留但无法发起新支付
建议操作流程:
- 停服前15天:通过脚本弹窗/通知推送提醒
- 停服前7天:在脚本详情页添加停服倒计时
- 正式下架:关闭所有购买通道,保留已付费用户使用权至到期日
特殊情形处理:
- 如需允许老用户续费,需保持脚本处于上架状态
- 可联系 support@hamibot.com 申请特殊续费通道(需提供商业理由)
ℹ️ 本回答由 AI 生成,内容仅供参考