轻松实现微信自动回复机器人,秒会女友消息,也适用于其他任何app,技术都一样

概要

思路就是开启手机对通知事件的监听,然后封装了消息的处理函数,通过自定义的数组对象对消息进行匹配,执行相应的自动化操作,比如实现指定app的消息监听、消息转发、消息回复……等等任意操作,所有app的自动回复都是这种技术。

权限设置

1.目标app需要开启通知权限
2.云控app需要开启通知使用权权限

核心代码

下面代码以微信为例,监听消息后可以发送邮件通知或者点击打开回复消息等自动化操作,可以自己 扩展

/* 自定义规则数组
每个规则包含以下属性,也可以自定义其他属性:
matchingPackageName: 待匹配的应用包名。
matchingText: 待匹配的通知文本。
autoClick: 是否自动点击匹配到的通知。
receiveEmail: 接收通知的电子邮件地址。
executeScript: 匹配到通知后需要执行的脚本代码 先用用url编码后再用base64编码,用的时候再解码就可以了。
 */
let rules = [{
     "matchingPackageName": "com.tencent.mm",
     "matchingText": "我的老家",
     "autoClick": true,
     "receiveEmail": "11111111111111@qq.com",
     "executeScript": $base64.encode(encodeURI(`
  console.log("我是规则里面的代码");
`))
}]


let matchingRules = rules ? rules : [];
/* 用于移除所有已经注册的 ‘notification’ 事件的监听器。这可以确保在重新注册新的监听器之前,之前的监听器不会影响到新的通知事件处理逻辑 */
events.removeAllListeners('notification');
/* 用来开启对通知事件的监听。一旦调用了该方法,将会开始监听设备上的所有通知事件,并触发相应的处理函数。 */
events.observeNotification();
/* 是用来注册一个处理函数,该函数会在监听到通知事件时被调用。在这个示例中,function (notification) { ... } 是一个匿名函数,可以在其中编写自定义的通知事件处理逻辑。 */
events.onNotification(function (notification) {
     let messageObj = {
          "应用包名": notification.getPackageName() || "",
          "通知文本": notification.getText() || "",
          "通知优先级": notification.priority || 0,
          "通知目录": notification.category || "",
          "通知时间": new Date(notification.when),
          "通知数": notification.number || 0,
          "通知摘要": notification.tickerText || ""
     }
     try {
          console.log(messageObj)
          /* 遍历定义的规则数组 */
          matchingRules.forEach(item => {
               item.matchingPackageName = item.matchingPackageName ? item.matchingPackageName : "";
               item.matchingText = item.matchingText ? item.matchingText : "";
               /* 脚本会通过监听手机端的通知事件来获取到新的通知消息,并与规则进行匹配。如果匹配到规则,根据设置的属性进行相应的操作 */
               if ((!item.matchingPackageName || messageObj["应用包名"].indexOf(item.matchingPackageName) !== -1) && (!item.matchingText || (messageObj["通知文本"].indexOf(item.matchingText) !== -1 || messageObj["通知摘要"].indexOf(item.matchingText) !== -1))) {
                    /* 监听到消息后可以做很多任何事情,比如点击、将消息转发到邮箱或者其他通信工具、执行指定的脚本代码…… */
                    /* 判断是否要点击 */
                    if (item.autoClick) {
                         notification.click();
                    }
                    /*发送邮件消息  */
                    sleep(1000);
                    if (item.receiveEmail) {

                         let message = JSON.stringify(messageObj)
                         item.message = message
                         item.title = "手机端通知消息";
                         var titleContent = {
                              title: item.title,
                              message: item.message
                         };
                         发送邮件(titleContent)

                    }

                    /*如果有代码则执行  */
                    if (item.executeScript) {
                         /*执行代码  */

                         执行代码(item.executeScript)
                    }
                    /*其他操作任何操作都可以实现  */
               }
          });
     } catch (e) {
          console.error(e)
     }
});
function 发送邮件(item) {
     console.log("这里写发送邮件的代码")
     console.log("邮件标题和内容");
     console.log(item);
     /*此处可以写个发送邮件的函数 我这里就不演示了  */
     console.log("邮件推送成功");
}
function 执行代码(msg) {
     console.log("这里写执行代码")
     console.log(msg)
     // 解码 base64 编码
     var decodedMessage = $base64.decode(msg);
     // 解码 URI 编码
     var decodedURI = decodeURI(decodedMessage);
     console.log("要执行的代码" + decodedURI)
     eval(decodedURI);
     console.log("执行成功");
     /* 下面我搞一个自动回复*/
     var returned = className("android.widget.EditText").findOne(100);
     if (returned) {
          returned.setText("我是自动回复的内容");
          sleep(1000);
          var returned发送 = text("发送").className("android.widget.Button").findOne(100);
          if (returned发送) {
               returned发送.click();
               sleep(500);
               back();
               sleep(500);
               home();
          } else {
               toastLog("未找到符合条件的控件");
          }

     } else {
          toastLog("未找到符合条件的控件");
     }
}

/* 移除所有已经注册的 ‘notification’ 事件的监听器 */
/* events.removeAllListeners('notification'); */;

运行测试

可以使用云控系统运行调试消息自动回复,你可以进行二次开发,比如识别到指定内容然后回复对应的内容
所有app都可以用此类方式实现消息自动回复
测试地址:http://smartcloudscript.com
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值