AiWork识别会话内容是自己的还是对方的

AiWork开发文档

在官方文档的基础上,进行重新排版和优化。
一个优雅的文档,对于开发体验的提升,是效果显著的。
永久域名:aiwork.wiki

需求

获取下面对话框的聊天内容,分别判断内容是自己的还是对方的

file

思路

有多种思路可以实现。可能需要用的技术:

  • OCR识别
  • OPENCV形状查找:寻找圆形头像
  • 无障碍节点查找:筛选对话内容
  • OPENCV比色找色

分析

已有0人支付

操作

先使用元素定位工具,找到对方的对话内容,右键——搜索定位

file

点击搜索按钮,搜到一个结果

file

点击生成代码,将代码复制出来

file

var nodesObj = auto.nodeSearch(3000).text("嗨,我是@圣仔,聊聊天吧").id("com.ss.android.ugc.aweme:id/content_layout").className("android.widget.TextView").clickable(true).longclickable(true);
if(nodesObj!=''){
   var nodeObj=nodesObj.getNode(0);
}

对代码进行修改,去掉其中的文字部分

var nodesObj = auto.nodeSearch(3000).id("com.ss.android.ugc.aweme:id/content_layout").className("android.widget.TextView").clickable(true).longclickable(true);
if(nodesObj!=''){
   var nodeObj=nodesObj.getNode(0);
}

接下来遍历查找结果,得到会话内容矩形,和矩形的左上和右下坐标点

var nodesObj = auto.nodeSearch(3000).id("com.ss.android.ugc.aweme:id/content_layout").className("android.widget.TextView").clickable(true).longclickable(true);
if (nodesObj != '') {
    for (let i = 0; i < nodesObj.count(); i++) {
        var nodeObj = nodesObj.getNode(i);
        let rectH = nodeObj.getBounds()
        let x1 = rectH.getLeft();
        let y1 = rectH.getTop();
        let x2 = rectH.getRight();
        let y2 = rectH.getBottom();
        console.log('对话内容范围:', x1, y1, x2, y2)
    }
}

最后进行多点比色。
完整的代码如下:
file

运行脚本,打印日志如下:

【系统日志】线程(runDebugJs)开始运行
[00:27:35.644]  #142 【String】对方的对话: "嗨,我是@圣仔,聊聊天吧"
[00:27:35.662]  #140 【String】自己的对话: "创作不易,感谢支持❤"
【系统日志】线程(runDebugJs)运行结束
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » AiWork识别会话内容是自己的还是对方的

企业级大数据智能营销管理系统

了解详情