请帮我写一段在 Hamibot 中运行的自动化 JavaScript 代码。
要求:
- 监听我的平板通知栏,当收到微信(包名com.tencent.mm)的新消息时,把通知栏显示的标题和内容用Bark推送到我的苹果手机。
- 我的Bark地址是:https://api.day.app/NCxB5NzkNvCaGuZUkJYimF
- 使用 auto.waitFor() 函数来启动服务。
- 代码需要避免使用箭头函数等较新的 JavaScript 语法。
- 让脚本持续运行,不退出。
回答
以下是一段符合 Hamibot 运行环境的 JavaScript 自动化脚本。该脚本监听微信通知并通过 Bark 推送消息到你的手机。代码已针对 Rhino 1.7.15 引擎进行了兼容性优化,避免了箭头函数和模板字符串等现代语法。
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
events.observeNotification();
var barkKey = "NCxB5NzkNvCaGuZUkJYimF";
var barkUrl = "https://api.day.app/" + barkKey;
events.on("notification", function(n) {
var packageName = n.getPackageName();
if (packageName == "com.tencent.mm") {
var title = n.getTitle();
var text = n.getText();
// 构建 Bark 推送链接
var pushUrl = barkUrl + "?title=" + encodeURIComponent(title) + "&body=" + encodeURIComponent(text);
try {
var res = http.get(pushUrl);
if (res.statusCode != 200) {
console.log("推送失败:" + res.statusCode);
}
} catch (e) {
console.log("网络请求异常:" + e);
}
}
});
// 保持脚本持续运行
while (true) {
sleep(1000);
}
使用说明与注意事项
-
权限设置
脚本依赖通知监听功能,你需要确保手机已授予 Hamibot“通知使用权”。- 进入手机「设置」→「应用管理」或「特殊应用权限」→「通知使用权」。
- 找到 Hamibot 并开启开关。
- 同时确保已开启无障碍服务(脚本中
auto.waitFor()会尝试等待)。
-
代码兼容性
- 使用了
var声明变量,避免使用const或let。 - 使用
function定义回调,未使用箭头函数=>。 - 使用字符串拼接
+,未使用模板字符串`。 - 这些修改确保了脚本在 Hamibot 的 Rhino 引擎中稳定运行。
- 使用了
-
Bark 配置
- 脚本中已填入你的 Bark Key。请妥善保管此 Key,不要泄露给他人。
- 如果推送内容包含特殊字符,
encodeURIComponent函数会自动处理编码问题。
-
运行状态
- 脚本末尾的
while(true)循环用于防止脚本执行完事件监听后自动退出,确保后台持续监听。 - 如需停止脚本,请在 Hamibot 控制台点击停止按钮。
- 脚本末尾的
如果在运行过程中遇到权限拦截或无法获取通知内容,请检查系统省电策略是否限制了 Hamibot 的后台活动。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实