今天618,大伙都在京東金融程序金果搖錢(qián)樹(shù)收金果,所以給大家介紹如何簡(jiǎn)單制作一個(gè)瞎领,自動(dòng)點(diǎn)擊手機(jī)指定位置的腳本。該簡(jiǎn)單的案例實(shí)現(xiàn)效果也是基于auto.js上的随夸,如果對(duì)auto.js不清楚的話可以看看基礎(chǔ)篇九默。
不多說(shuō),先上最簡(jiǎn)單代碼:
首先打開(kāi)Auto.js右下角加號(hào)新建一個(gè)js文件(javascript語(yǔ)言)宾毒。然后在文件第一行輸入click(x,y);這就是我們的點(diǎn)擊功能驼修。然后把其中x換成你要點(diǎn)的坐標(biāo)的橫坐標(biāo),y換成你要點(diǎn)的坐標(biāo)的縱坐標(biāo)即可诈铛。比如乙各,我要點(diǎn)擊坐標(biāo)x500,y1200的地方幢竹,那么就輸入click(500,1200);即可耳峦。
關(guān)于,如何獲得你要點(diǎn)擊的點(diǎn)的橫坐標(biāo)與縱坐標(biāo)焕毫,首先打開(kāi):手機(jī)-設(shè)置-開(kāi)發(fā)者選項(xiàng)-指針位置蹲坷,這時(shí),你手點(diǎn)擊在屏幕上時(shí)邑飒,最上面一排循签,都會(huì)顯示出,你點(diǎn)擊的位置的坐標(biāo)疙咸。這個(gè)坐標(biāo)是已手機(jī)左上角為坐標(biāo)系原點(diǎn)县匠,一直延伸像右下角,大小等于你手機(jī)分辨率的一個(gè)坐標(biāo)系。
僅僅點(diǎn)擊聚唐,可能并不能達(dá)到大部分所有腳本的需求丐重。sleep(t)這個(gè)功能能讓腳本從上往下運(yùn)行到這一步時(shí),暫停一段時(shí)間杆查,再繼續(xù)運(yùn)行下去扮惦。t改成需要暫停運(yùn)行的毫秒數(shù),1秒=1000毫秒 亲桦,數(shù)字是整數(shù)崖蜜,如果你寫(xiě)的不是整數(shù),程序會(huì)自動(dòng)四舍五入湊整客峭。 ? ? ? ? 比如暫停十分鐘豫领,我們可以先算出來(lái),10分鐘600秒舔琅,就是600 000毫秒等恐,那么程序就是sleep(600000);? ? 當(dāng)然我們可以不需要自己算出來(lái),直接在括號(hào)內(nèi)寫(xiě)一個(gè)算式即可备蚓,* 代表×的意思课蔬,可以直接寫(xiě)sleep(10*60*1000);這樣,程序運(yùn)行時(shí)郊尝,會(huì)先自動(dòng)把二跋,括號(hào)內(nèi)的算式算出來(lái),再運(yùn)行等待流昏。 ? ? ? ?
教學(xué)實(shí)例:我們比如想在晚上12點(diǎn)在某QQ群發(fā)出簽到扎即,卻明天有事,必須9點(diǎn)前睡覺(jué)况凉。那我們可以寫(xiě)個(gè)腳本谚鄙,等待一段時(shí)間后,自動(dòng)點(diǎn)下茎刚,9點(diǎn)距離12點(diǎn)有三個(gè)小時(shí)那么第一行等待寫(xiě)sleep(3*60*60*1000);然后寫(xiě)點(diǎn)擊發(fā)送襟锐,在小編手機(jī)上,發(fā)送按鈕的坐標(biāo)在1000,150膛锭,所以點(diǎn)擊命令為click(1000,150);連起來(lái)后粮坞,在晚上9點(diǎn)運(yùn)行,切換到qq簽到界面就好啦初狰。
學(xué)會(huì)了這個(gè)方法莫杈,相信各位,只要能記錄好等待時(shí)間奢入,做出筝闹,自動(dòng)玩跳舞的線之類的游戲的腳本應(yīng)該沒(méi)問(wèn)題了吧。 ? ? ? ?
說(shuō)完了click點(diǎn)擊,我們來(lái)講下一個(gè)功能press关顷。
我們?cè)谀M操作的時(shí)候糊秆,可能不需要單獨(dú)一下的點(diǎn)擊,而是需要長(zhǎng)按之類的操作议双,press正是一個(gè)能設(shè)置點(diǎn)擊下去時(shí)間長(zhǎng)短的按下功能痘番。語(yǔ)法是press(x,y,t);其中前兩個(gè)和click一樣,設(shè)置點(diǎn)擊坐標(biāo)平痰,第三個(gè)設(shè)置點(diǎn)擊時(shí)常汞舱,單位是毫秒,手機(jī)內(nèi)一般認(rèn)定半秒宗雇,即500毫秒的點(diǎn)擊昂芜,是長(zhǎng)按。
舉個(gè)例子赔蒲,長(zhǎng)按屏幕500,500的地方兩秒:press(500,500,2000); ? ? ? ?
其實(shí)看似click是幾乎一瞬間完成點(diǎn)擊效果泌神,其實(shí)是默認(rèn)了一個(gè)點(diǎn)擊時(shí)長(zhǎng)100毫秒,所以如果想做更快的點(diǎn)擊操作舞虱,可以用press設(shè)置點(diǎn)擊時(shí)長(zhǎng)為1毫秒腻扇,代替click功能。 ? ? ? ?
再說(shuō)一個(gè)功能swipe直線滑動(dòng)砾嫉。制作腳本時(shí)不免還是必須有滑動(dòng)功能的。比如趣頭條自動(dòng)放文章窒篱,火牛視頻翻視頻之類的功能焕刮。語(yǔ)法是swipe(x1,x2,y1,y2,t);前兩個(gè)為:設(shè)置滑動(dòng)開(kāi)始的點(diǎn)的坐標(biāo),第三四個(gè)為設(shè)置滑動(dòng)終止的點(diǎn)的坐標(biāo)墙杯,第五個(gè)為滑動(dòng)總消耗的時(shí)間長(zhǎng)短配并。舉個(gè)例子,從屏幕100,300滑動(dòng)至600,900總耗時(shí)花1秒為:swipe(100,300,600,900,1000); ? ? ? ?
寫(xiě)個(gè)實(shí)例高镐,火牛視頻溉旋,連續(xù)三次,每20秒嫉髓,自動(dòng)翻一次視頻观腊。火牛視頻從下往上翻算行,就差不多從橫坐標(biāo)500的地方梧油,縱坐標(biāo)從1500滑到1000,耗時(shí)半秒差不多就可以了吧州邢。那滑動(dòng)命令就是swipe(500,1500,500,1000,500);另外等待20秒的命令大家相比都會(huì)了吧儡陨,直接說(shuō)sleep(20000);然后這些要運(yùn)行三遍,那就這兩條信息一起復(fù)制三份即可,完成內(nèi)容見(jiàn)下圖骗村。
以上就是今天基本要講的內(nèi)容嫌褪,其中click,press胚股,swipe是只有安卓7.0及以上才可以使用笼痛,現(xiàn)在大部分手機(jī)都到了吧..而且需要無(wú)障礙服務(wù)權(quán)限,不然運(yùn)行會(huì)報(bào)錯(cuò):無(wú)障礙服務(wù)權(quán)限未打開(kāi)信轿。然后程序直接運(yùn)行結(jié)束晃痴,為了防止這種事情發(fā)生我們可以在代碼開(kāi)頭加一行auto.waitFor();這句話的功能是,獲取無(wú)障礙服務(wù)權(quán)限财忽,如果已經(jīng)有了倘核,那就繼續(xù)運(yùn)行下面的代碼,如果沒(méi)有即彪,就跳轉(zhuǎn)到給無(wú)障礙服務(wù)權(quán)限的界面紧唱,并且等待給了權(quán)限,再繼續(xù)運(yùn)行下面的代碼隶校。在代碼之前申請(qǐng)好運(yùn)行的權(quán)限是一個(gè)好習(xí)慣漏益。 ? ? ? ?
另外,如果手機(jī)沒(méi)到安卓7.0的朋友們深胳,Auto.js也有方法绰疤,就是基于root權(quán)限的操作,并且兼容所有安卓版本舞终。點(diǎn)擊命令Tap(x,y);用法和click(x,y);完全一樣轻庆,滑動(dòng)命令Swipe(x1,x2,y1,y2,t);用法和swipe(x1,x2,y1,y2,t);完全一樣,但是基于root權(quán)限的操作并沒(méi)有長(zhǎng)按功能敛劝,不過(guò)各位想一下余爆,如果滑動(dòng)500毫秒,開(kāi)始點(diǎn)和結(jié)束的點(diǎn)一樣夸盟,那不就是長(zhǎng)按的效果嘛蛾方,所以自己可以想想,如何用Swipe代替root權(quán)限的長(zhǎng)按上陕。
回到京東金融小案例桩砰,我們不可能一直停在頁(yè)面上等自動(dòng)點(diǎn)擊,所以就在設(shè)定的時(shí)間去啟動(dòng)應(yīng)用唆垃,然后等啟動(dòng)頁(yè)顯示完后將頁(yè)面下拉到種搖錢(qián)樹(shù)處圖片加載到收金果的頁(yè)面然后再點(diǎn)擊收金果五芝,之后退出應(yīng)用。
再考慮屏幕會(huì)熄屏需要亮屏解鎖辕万,我的手機(jī)有人臉指紋密碼三種方式屏幕解鎖枢步,自動(dòng)解鎖采用密碼輸入方式沉删,我的鎖屏密碼剛好設(shè)置的比較簡(jiǎn)單都是1,所以最終代碼如下(今早忘帶手機(jī)醉途,所以直接貼代碼):
threads.start(function()
{ while(true){ launchApp("京東金融"); sleep(10000);//啟動(dòng)頁(yè)緩沖時(shí)間 swipe(1000,1700,1000,450,4000);//上滑顯示出收金果的鏈接跳轉(zhuǎn)圖片 click(1000,1000); sleep(10000);//跳轉(zhuǎn)鏈接緩沖 click(550,1260); sleep(2000); back();//退出鏈接 back();//返回鍵退出應(yīng)用 sleep(500);//稍等一小會(huì)再按返回鍵矾瑰,以防太快無(wú)法響應(yīng)導(dǎo)致無(wú)法退出應(yīng)用 back();//再次返回鍵退出應(yīng)用 //shell("am force-stop com.jd.jrapp",true); sleep(600000);//延時(shí),后再循環(huán) if(device.isScreenOn()==false){//熄屏 device.wakeUpIfNeeded();//喚醒設(shè)備 device.wakeUp();//亮屏 swipe(1000,1700,1000,450,4000);//上滑顯示輸密屏幕解鎖 for(var i=0;i<8;i++){ click(250,1350); sleep(1000);//以防按太快漏輸情況 } sleep(10000); } });