微信聊天界面的最新的一条信息的内容怎么获取

2

主题

0

回帖

8

积分

新手上路

积分
8
微信聊天界面的最新的一条信息的内容怎么获取

举报 回复

78

主题

190

回帖

861

积分

管理员

积分
861
  1. "auto";

  2. //设置无障碍模式 fast为启用缓存
  3. auto();

  4. //请求截屏权限  因为增加了这个权限请求 启动脚本必须在 autojs APP界面 否则会有问题,主要是连电脑调试要注意
  5. if(!images.requestScreenCapture()){
  6.     toast("请求截图失败");
  7.     exit();
  8. }

  9. function getMsg(){
  10.     if(currentActivity() != 'com.tencent.mm.ui.LauncherUI'){
  11.         //不在聊天Activity

  12.         //先判断是否在微信中
  13.         if(currentActivity().search('com.tencent.mm') == -1){
  14.             //当前 APP 不是微信
  15.             return false;
  16.             //app.launch("com.tencent.mm");
  17.         }
  18.         //不在聊天Activity ,则有可能是文字详情界面  点击任意区域回到聊天界面(点状态栏区域比较保险)
  19.         press(1, 1, 1);
  20.         sleep(100); //这个时间根据手机的响应速度可能要稍微调整 ***这里可以根据情况调整***
  21.     }
  22.     if(!id('aab').exists() || !id('y').exists()){
  23.         //没有找到输入框则表示当前界面不是聊天窗口
  24.         return false;
  25.     }
  26.     var last_y = id('y').findOnce(id('y').find().size()-1);

  27.     if(last_y.childCount() != 2){
  28.         return false;
  29.     }

  30.     var ji = last_y.child(1).findOne(id('ji'));

  31.     if(ji){
  32.         return ['text', getText(ji)];
  33.     }else {
  34.         var aec = last_y.child(1).findOne(id('aec'));
  35.         if(aec){
  36.             var jh = last_y.child(1).findOne(id('jh'));
  37.             var nickname;
  38.             if(jh){
  39.                 nickname = jh.text();
  40.             }else{
  41.                 nickname = last_y.child(0).findOne(id('jg')).contentDescription.replace('头像','');
  42.             }
  43.             return ['img', getImg(aec), nickname];
  44.         }
  45.     }

  46.     return false;
  47. }

  48. function getText(uiObj){
  49.     //微信的聊天文本不能直接获取到 这里模拟双击在文本详情界面获取内容
  50.     //获取文字区域 模拟双击
  51.     var last_ji_rect = uiObj.bounds();
  52.     press(last_ji_rect.centerX(), last_ji_rect.centerY(), 1);
  53.     sleep(40); //双击间隔时间  ***这里可以根据情况调整***
  54.     press(last_ji_rect.centerX(), last_ji_rect.centerY(), 1);

  55.     var afv = id('afv').findOne().text();
  56.     press(last_ji_rect.centerX(), last_ji_rect.centerY(), 1);

  57.     return afv;
  58. }

  59. function sendMsg(str){
  60.     //设置输入框文本
  61.     id('aab').setText(str);

  62.     //获取标题栏区域并点击,解决发送按钮获取不到的问题
  63.     var hj = id('hj').findOne().bounds();
  64.     click(hj.centerX(), hj.centerY());

  65.     //点击发送
  66.     id('aah').click();
  67. }
复制代码
以前可以用这个方法获取,思路差不多,现在微信版本不太一样了。得自己改进。

举报 回复