<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          快過年了,如何使用 AutoJS 自動(dòng)化快速搶紅包!

          共 933字,需瀏覽 2分鐘

           ·

          2022-01-10 19:05


          大家好,我是安果!
          快過年了,群里一般會(huì)充斥著各種紅包,你搶紅包的手速怎么樣呢?
          AutoJS 是一款 Android 端的應(yīng)用軟件,它可以基于無障礙服務(wù)主動(dòng)或基于任務(wù),完成一系列自動(dòng)化操作
          官網(wǎng):https://pro.autojs.org/

          PS:由于 AutoJS Pro 對(duì)主流應(yīng)用的限制,本篇文章基于 AutoJS?4.1.1 進(jìn)行實(shí)現(xiàn)

          廢話不多說,下面直接講實(shí)現(xiàn)過程

          #?1. 準(zhǔn)備及啟動(dòng)

          首先,在 PC 上裝 VS Code,手機(jī)上裝 AutoJS 應(yīng)用

          PS:文末提供下載包

          然后,保證電腦和手機(jī)在同一局域網(wǎng),AutoJS 通過 ip 連接電腦

          最后,使用?VS Code 創(chuàng)建一個(gè) JS 文件,編寫打開目標(biāo)應(yīng)用的腳本文件

          //打開目標(biāo)應(yīng)用
          //應(yīng)用名稱
          var?app_name?=?'**';

          //打開應(yīng)用
          launchApp(app_name)

          //保持屏幕長亮
          device.keepScreenOn()

          #?2. 搜索紅包及點(diǎn)擊

          定義一個(gè)方法,用于搜索當(dāng)前群聊記錄中的所有紅包記錄

          首先,通過 id 和類名獲取所有的紅包元素列表

          接著,遍歷紅包元素列表,判斷紅包控件是否為一個(gè)有效的紅包

          最后,使用 click() 方法點(diǎn)擊紅包對(duì)象,彈出搶紅包對(duì)話框

          //每一個(gè)紅包的描述信息(自己輸入)
          var?red_package_tag?=?"u1"

          function?searchNewRedpacket()?{
          ????//通過className+id,共同查找元素
          ????var?rp_msg_list?=?className("android.widget.TextView").id(red_package_tag).find();
          ????if?(rp_msg_list.length?!=?0)?{
          ????????log("檢測到的紅包個(gè)數(shù):?"?+?rp_msg_list.length);

          ????????//遍歷紅包對(duì)象
          ????????for?(var?i?=?0;?i?????????????var?rp_u1?=?rp_msg_list[i];
          ????????????var?rp_u1_parent?=?rp_u1.parent()
          ????????????//?判斷是否為一個(gè)【有效紅包】
          ????????????if?(rp_u1_parent?!=?null?&&?rp_u1_parent.childCount()?==?1)?{
          ????????????????log("發(fā)現(xiàn)新紅包,準(zhǔn)備開搶。。。");
          ????????????????//通過元素的坐標(biāo)去點(diǎn)擊
          ????????????????click(rp_u1.bounds().centerX(),?rp_u1.bounds().centerY())
          ????????????????log("恭喜!搶到一個(gè)紅包。。。。")
          ????????????}?else?{
          ????????????????log("無效紅包。。。")
          ????????????}
          ????????}
          ????}?else?if?(rp_msg_list.empty())?{
          ????????//元素列表為空
          ????????log("未檢測到紅包消息"?+?rp_msg_list.length);
          ????}?else?{
          ????????return;
          ????}
          }

          #?3. 搶紅包

          定義一個(gè)方法,用于搶紅包

          PS:這里需要過濾過期類的紅包

          //打開紅包開搶
          function?openNewRedPacket()?{
          ????//通過desc描述找到元素
          ????var?draw?=?desc("開").findOne(500);
          ????if?(draw?!=?null)?{
          ????????draw.click();
          ????}?else?{
          ????????log("過期之類無效紅包");
          ????}
          }

          #?4. 循環(huán)及異常處理

          定義一個(gè)方法,用于處理下面 3 種頁面,保證遇到異常或操作完成后,立即返回到聊天頁面

          //返回到上一頁
          function?back_page()?{
          ????//紅包搶完了(對(duì)話框)
          ????var?red_end?=?id("f4b").textContains("手慢了,紅包派完了").findOnce()
          ????if?(red_end)?{
          ????????log("返回一")
          ????????back()
          ????}
          ????//紅包領(lǐng)取頁面--自己搶到
          ????var?red_fp?=?desc("已存入零錢,可直接提現(xiàn)").findOnce()
          ????if?(red_fp)?{
          ????????log("返回二")
          ????????back()
          ????}

          ????//紅包領(lǐng)取頁面--被別人搶光
          ????var?red_other?=?id("eyx").textContains("被搶光").findOnce()
          ????if?(red_other)?{
          ????????log("返回三")
          ????????back()
          ????}
          }

          #?5. 線程加速

          上面定義了 3 個(gè)方法,我這里將他們放到 3 個(gè)線程中異步執(zhí)行,提升執(zhí)行效率

          //線程一:點(diǎn)擊紅包進(jìn)入
          threads.start(function?()?{
          ????//在新線程執(zhí)行的代碼(子線程)
          ????while?(true)?{
          ????????//尋找紅包,并進(jìn)入
          ????????searchNewRedpacket()
          ????}
          });

          //線程二:點(diǎn)擊【開】按鈕)
          threads.start(function?()?{
          ????while?(true)?{
          ????????openNewRedPacket();
          ????}
          })

          //線程三:如果紅包搶完、搶到,馬上返回
          threads.start(function?()?{
          ????while?(true)?{
          ????????back_page()
          ????}
          })

          # 6. 總結(jié)一下

          相比傳統(tǒng)的自動(dòng)化操作,加入多線程分工操作,可以更快地運(yùn)行自動(dòng)化去搶紅包

          我已將文中所有源碼上傳到下方公眾號(hào)后臺(tái),關(guān)注公眾號(hào)「?煎蛋搞錢?」后回復(fù)關(guān)鍵字「?qhb?」即可以獲取

          如果你覺得文章還不錯(cuò),請(qǐng)大家?點(diǎn)贊、分享、留言?下,因?yàn)檫@將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力!


          瀏覽 94
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天插天天爽 | 亚洲黄片黄片 | 水密桃视频网站 | 围内精品久久久久久久久久‘变脸 91久久婷婷国产麻豆精品电影 | 日韩av一卡电影在线观看 |