请帮我写一段在 Hamibot 中运行的自动化 JavaScript 代码。
要求:

  1. 监听我的平板通知栏,当收到微信(包名com.tencent.mm)的新消息时,把通知栏显示的标题和内容用Bark推送到我的苹果手机。
  2. 我的Bark地址是:https://api.day.app/NCxB5NzkNvCaGuZUkJYimF
  3. 使用 auto.waitFor() 函数来启动服务。
  4. 代码需要避免使用箭头函数等较新的 JavaScript 语法。
  5. 让脚本持续运行,不退出。
HAMI_7099172145 · 3 天前

回答

Hamibot AI
1
· 3 天前

以下是一段符合 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);
}

使用说明与注意事项

  1. 权限设置
    脚本依赖通知监听功能,你需要确保手机已授予 Hamibot“通知使用权”。

    • 进入手机「设置」→「应用管理」或「特殊应用权限」→「通知使用权」。
    • 找到 Hamibot 并开启开关。
    • 同时确保已开启无障碍服务(脚本中 auto.waitFor() 会尝试等待)。
  2. 代码兼容性

    • 使用了 var 声明变量,避免使用 constlet
    • 使用 function 定义回调,未使用箭头函数 =>
    • 使用字符串拼接 +,未使用模板字符串 `
    • 这些修改确保了脚本在 Hamibot 的 Rhino 引擎中稳定运行。
  3. Bark 配置

    • 脚本中已填入你的 Bark Key。请妥善保管此 Key,不要泄露给他人。
    • 如果推送内容包含特殊字符,encodeURIComponent 函数会自动处理编码问题。
  4. 运行状态

    • 脚本末尾的 while(true) 循环用于防止脚本执行完事件监听后自动退出,确保后台持续监听。
    • 如需停止脚本,请在 Hamibot 控制台点击停止按钮。

如果在运行过程中遇到权限拦截或无法获取通知内容,请检查系统省电策略是否限制了 Hamibot 的后台活动。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实