天天看點

2020雙十一自動刷淘寶&支付寶喵币Auto.js腳本(安卓适用)

參考https://www.52pojie.cn/thread-1287906-1-1.html修改的程式,豐富了很多功能

0.更新内容

@_@常回來看看,可能會有bug修複和添加新功能

  • v1.27 11.6更新:
    • 支付寶現在首頁上方的視窗加載很慢,對應修改了支付寶活動入口的進入判斷。
    • 如果領取模式為MODE=1(隻領取支付寶),在領完支付寶之後會根據設定進行扁貓貓功能。
    • 現在預設領取模式為MODE=1(隻領取支付寶),并且扁貓貓功能預設開啟了。主要是考慮到使用腳本領取淘寶也掙不到幾個喵币,如果仍然有需求,請自行修改代碼第13行和23行。
    • 由于支付寶預設進去之後就打開任務界面,之前的腳本會漏掉領取錢袋子的操作,現在在每次支付寶領取結束後增加了領取錢袋子的操作。

>>>點選檢視更多:

  • v1.26 11.4更新:
    • 支付寶活動頁進去之後變成了自動彈出賺喵币界面,導緻之前的腳本進去之後找不到賺喵币按鈕而停着不動,對應加了個判斷
    • 針對支付寶的活動入口做了判斷,分為上面存在入口和下面存在入口兩種情況,解決支付寶首頁頻繁變動帶來的活動入口找不到的情況
    • 重要:由于最新版的淘寶會檢測是否開啟了無障礙功能,檢測到開啟後活動獎勵都降為正常的1/10,是以部分使用者可能想要僅自動刷支付寶的喵币。對應新增自選腳本領取模式的功能,通過修改腳本第26行的MODE值,運作三種模式:
      • 0:支付寶淘寶均領取,1:隻領取支付寶,2:隻領取淘寶,其他:都不領取
  • v1.25 11.1更新:
    • 更新了支付寶淘寶的活動入口,基本就是這兩種格局
  • v1.24 10.29更新:
    • 日常更新,淘寶支付寶每天首頁基本都在變,今天已适配,但不能保證及時更新。遇到停在首頁不動請手動進入活動頁,每天7點後第一次進入活動頁可能會出現停住沒反應的情況,需要手動領一下貓旁邊的錢袋子即可。
    • 支付寶和淘寶内任務更新。
    • 支付寶逛一逛時間延長到18秒。
  • v1.23 10.27更新:
    • 淘寶的貓貓可能會出走,需要手動尋找一下
    • 修複了澆水bug
  • v1.22 10.26更新:
    • 支付寶的活動頁位置調整了,相應進行了更新
    • 亮屏設定了最長時間為30分鐘
    • 通過背景css給更新内容加了個折疊文字的功能,是不是看着友善多了?(√)
  • v1.21 10.25更新:
    • 啟用支付寶内活動頁完成[施肥]和[澆水]任務功能,但是此任務随緣,可能要主動[緩一緩],遇到才能做
    • 優化了支付寶領流程的等待時間
    • 修複了每日7點領取喵币時卡住的問題,之前版本每天7點後第一次進入活動頁會停滞無操作,需要手動領取喵币錢袋子
    • 穩定性、提示文字更新
  • v1.2 10.24更新:
    • 活動頁的“賺喵币”的位置又發生了變化,文字也改成了“領喵币”。新版本不依賴位置,已經能很好地處理此情況
    • 優化了點選貓旁邊的錢袋子的邏輯,理論上一直都能點對,魯棒性大大加強。
    • 懸浮窗位置下移了一點,防止擋住部分關鍵操作點選的文字
    • 懸浮窗會在适當的時候提示下一步操作(提醒手動打開首頁),後續會進一步豐富提醒流程
    • 開啟腳本後會啟用保持螢幕常亮的功能,關閉腳本後取消螢幕常亮。為了實作這個功能,對之前版本的“關閉懸浮窗即結束腳本”的功能做了調整,目前改為“長按懸浮窗内文字則立即結束腳本”
    • 重大提速:優化了很多地方的等待時間,比如會自動判斷首頁加載完成了,領錢袋優化成了光速,等等
    • 寫好了在支付寶中完成“澆水”和“施肥”任務的邏輯,目前在代碼中注釋掉了,等待之後測試。等不及的小夥伴可以自行取消注釋體驗。
  • v1.14
    • 淘寶首頁更新,活動頁位置發生變化,對應進行了修改。後續更新會換一個方式進入淘寶活動頁。
    • 溫馨提示:使用腳本刷喵币獲得的隻有手動完成任務的1/10獎勵,根據活動描述文本中“完成任務最高可獲xxx喵币”來看,阿裡官方應該是認可了腳本自助刷喵币的行為為正常參與,隻是你獲得不了最高獎勵。
  • v1.13 
    • Bug修正:修複了扁貓貓功能點選錯誤的問題
  • v1.12
    • 在程式運作最開始的時候關閉其他正在運作的腳本,友善小白選手不知道自己背景還在運作腳本。
    • 優化了點選“賺喵币”的坐标位置
  • v1.11
    • Bug修正:修複了"賺喵币"點選錯誤的問題
  • v1.1
    • 重大更新:增加了懸浮窗功能,懸浮窗用于提示程式的關閉方式
    • 針對沒有[音量-]實體按鍵的手機,增加了通過關閉懸浮窗來關閉腳本的功能(已于1.2版本改為“長按懸浮窗内文字則立即結束腳本”)
    • 針對特别長的全面屏手機,簡單拟合了一下螢幕尺寸與點選“賺喵币”的坐标之間的函數關系
    • 重要:針對偶發的無法開啟淘寶的情況,增加了檢測機制,如果沒有發現淘寶首頁的[今日爆款]或[天貓超市],即提醒手動打開淘寶首頁
    • 無法自動開啟淘寶的話,請檢查自己的Auto.js的權限“背景彈出界面”或者“在其他應用的上層顯示(華為手機)”是否開啟
  • v1.0
    • 增加了一些偶然事件的處理方式
    • 自适應優化

 1.開宗明義

(小白請看第四部分内容)

  • 平台:Android
  • 功能:雙十一自動刷淘寶和支付寶的喵币
  • 特色:
    • 支付寶的喵币刷完後自動刷淘寶的喵币
    • 增加了狂扁活動界面的貓,獲得蚊子腿喵币的功能(預設開啟,關閉方法為:把代碼第13行的true改為false)
    • 增加了程式運作時按下[音量下鍵]和[長按懸浮窗内文字]退出的功能,提供給想要主動退出的情況(尤其是狂扁貓貓的階段,預設持續20s)。(也可以在Auto.js中的管理欄目下找到正在運作的腳本)
    • 代碼最開始提供了自定義的内容,可以根據自己的螢幕大小進行修改适配
  • 依賴:Auto.js
  • 注意:腳本開啟前需要保證淘寶和支付寶未開啟,或者處于淘寶和支付寶均處于首頁,否則之後都會錯誤操作

腳本代碼如下https://wws.lanzous.com/b01npfw9g,下載下傳後解壓然後使用Auto.js的導入功能)

/*---原載于https://www.cnblogs.com/smileglaze/p/13854538.html 僅供學習交流,下載下傳後請于24小時内删除*/

/*--------版本v1.27根據個人情況修改以下内容----------*/

//長等待時間常量,用于應用啟動、廣告等較長時間等待,如果網絡不好或手機卡請增加此數值,預設8秒
var LONG_TIME = 8000;

//短等待時間常量,用于例如傳回等每步操作後的等待,如果手機卡請增加此數值
var SHORT_TIME = 3000;

//是否開啟點(扁)貓貓擷取蚊子腿喵币功能,預設開啟。
//可選值:   true:開啟;false:關閉
var TAP_FLAG = true;

//點選貓的間隔時間,預設是100毫秒
var TAP_INTERVAL = 100;

//點選貓的持續次數,預設是200次
var TAP_TIMES = 200;

//領取模式切換,預設為隻領取支付寶。
//可選值:   0:支付寶淘寶均領取,1:隻領取支付寶,2:隻領取淘寶,其他:都不領取
var MODE = 1;

/*--------根據個人情況修改以上内容----------*/

auto.waitFor();
var height = device.height;
var width = device.width;
setScreenMetrics(width, height);

//停掉除了本腳本以外的正在運作的腳本
killOthersAlive();

//啟用懸浮窗,用于提示,為沒有音量下鍵的手機提供了關閉懸浮窗可以直接停止腳本的方式
var w = floaty.window(
    <frame gravity="left">
        <text id="text" textColor="black" bg=\'#ffffff\'>★★★Tips:按下[音量-]鍵或者長按[懸浮窗内文字]可随時結束腳本</text>
    </frame>
);
//設定懸浮窗變量
floatW();

//啟用按鍵監聽,按下音量下鍵腳本結束
keyDetector();

//開始刷喵币
switch (MODE) {
    case 0:

        //保持螢幕常亮,最多三十分鐘
        device.keepScreenDim(30 * 60 * 1000);
        lingQuZhifubao();
    case 1:

        //保持螢幕常亮,最多三十分鐘
        device.keepScreenDim(30 * 60 * 1000);
        lingQuZhifubao();
    case 2:

        //保持螢幕常亮,最多三十分鐘
        device.keepScreenDim(30 * 60 * 1000);
        lingQuTaobao();
    default:
        toast("腳本26行MODE非有效值,腳本結束^_^")
        sleep(SHORT_TIME);
        exit();
}

//啟用按鍵監聽,按下音量下鍵腳本結束
function keyDetector() {
    threads.start(function() { //在子程序中運作監聽事件
        events.observeKey();
        events.on("key", function(code, event) {
            var keyCodeStr = event.keyCodeToString(code);
            console.log(code);
            console.log(keyCodeStr);
            if (keyCodeStr == "KEYCODE_VOLUME_DOWN") {
                toast("檢測到音量下鍵,程式已結束。");
                //取消螢幕常亮
                device.cancelKeepingAwake();
                exit();
            }
        });
    });
}

function lingQuTaobao() {
    app.startActivity({
        packageName: "com.taobao.taobao",
        className: "com.taobao.tao.TBMainActivity"
    });
    ui.run(function() {
        w.text.setText("★★★Tips:若長時間無反應請手動打開淘寶首頁");
    });
    text("今日爆款").waitFor();
    //text("天貓超市").waitFor();
    sleep(1000);
    ui.run(function() {
        w.text.setText("★★★Tips:按下[音量-]鍵或者長按[懸浮窗内文字]可随時結束腳本");
    });
    //點選“瘋搶紅包”進入活動頁
    id("rv_main_container").findOne().child(4).child(0).child(0).click();
    //click(width / 2 + 200, TAOBAO_Y);
    toast("進入活動頁");
    //sleep(LONG_TIME);
    className("android.widget.Button").text("我的貓,點選撸貓").findOne(LONG_TIME);
    //偶發的去農場領貓事件
    if (text("親愛的主人我去芭芭農場玩耍了快來找我回家吧~").exists()) {
        ui.run(function() {
            w.text.setText("★★★貓跑去芭芭農場了,請手動完成任務後傳回活動首頁");
        });
        className("android.widget.Button").text("我的貓,點選撸貓").waitFor();
        ui.run(function() {
            w.text.setText("★★★Tips:按下[音量-]鍵或者長按[懸浮窗内文字]可随時結束腳本");
        });
    }
    //檢測彩蛋
    if (text("獲得一個待開獎的彩蛋").exists()) {
        text("好的,11月11日見").findOne().click();
        toast("領取彩蛋成功");
        sleep(SHORT_TIME);
    }
    //點選貓旁邊的錢袋子
    //click(PURSE_X, PURSE_Y);
    //className("android.widget.Button").textContains("7點可領").findOne().click();
    if (className("android.widget.Button").textContains("點選領取").exists()) {
        className("android.widget.Button").textContains("點選領取").findOne().click();
        text("去喂貓 賺更多喵币").waitFor();
        text("去喂貓 賺更多喵币").findOne().click();
        sleep(SHORT_TIME);
    }
    //sleep(SHORT_TIME * 2);
    //點選賺喵币進入任務頁
    //click(ZHUAN_X, ZHUAN_Y - 100);
    className("android.widget.Button").text("賺喵币").findOne().click()
    toast("賺喵币");
    sleep(SHORT_TIME * 2);
    if (text("簽到").exists()) {
        text("簽到").findOne().click();
        sleep(SHORT_TIME);
        toast("簽到成功");
        sleep(2000);
    }
    while (text("去浏覽").exists()) {
        toast("存在去浏覽");
        text("去浏覽").findOne().click();
        sleep(1500);
        swipe(width / 2, height - 500, width / 2, 0, 500);
        sleep(2500);
        swipe(width / 2, height - 500, width / 2, 0, 500);
        sleep(10000);
        swipe(width / 2, height - 500, width / 2, 0, 500);
        sleep(8000);
        back();
        sleep(SHORT_TIME + 1000);
        if (!text("累計任務獎勵").exists()) {
            back();
            sleep(SHORT_TIME);
        }
    }
    if (textContains("邀請好友一起撸貓").exists()) {
        //任務中有邀請任務,無法自動完成,跳過這個任務
        toast("有邀請任務");
        while (text("去完成").exists()) {
            //尋找并點選第二個“去完成”
            var tmp = text("去完成").findOnce(1);
            if (tmp == null) {
                //找不到第二個任務了,結束循環
                break;
            }
            toast("存在新任務");
            tmp.click();
            sleep(2500);
            swipe(width / 2, height - 600, width / 2, 0, 500);
            sleep(3500);
            swipe(width / 2, height - 600, width / 2, 0, 500);
            sleep(10000);
            swipe(width / 2, height - 600, width / 2, 0, 500);
            sleep(9000);
            back();
            sleep(SHORT_TIME + 1000);
        }
    } else {
        toast("無邀請任務");
        while (text("去完成").exists()) {
            toast("存在新任務");
            text("去完成").findOne().click();
            sleep(2500);
            swipe(width / 2, height - 600, width / 2, 0, 500);
            sleep(3500);
            swipe(width / 2, height - 600, width / 2, 0, 500);
            sleep(10000);
            swipe(width / 2, height - 600, width / 2, 0, 500);
            sleep(9000);
            back();
            sleep(SHORT_TIME + 1000);
        }
    }
    while (text("去搜尋").exists()) {
        toast("存在去搜尋");
        text("去搜尋").findOne().click();
        sleep(1500);
        swipe(width / 2, height - 500, width / 2, 0, 500);
        sleep(2500);
        swipe(width / 2, height - 500, width / 2, 0, 500);
        sleep(10000);
        swipe(width / 2, height - 500, width / 2, 0, 500);
        sleep(8000);
        back();
        sleep(SHORT_TIME + 1000);
    }
    while (text("去逛逛").exists()) {
        toast("存在去逛逛");
        text("去逛逛").findOne().click();
        sleep(1500);
        swipe(width / 2, height - 500, width / 2, 0, 500);
        sleep(2500);
        swipe(width / 2, height - 500, width / 2, 0, 500);
        sleep(10000);
        swipe(width / 2, height - 500, width / 2, 0, 500);
        sleep(8000);
        back();
        sleep(SHORT_TIME + 1000);
    }
    toast("領取完成...");
    if (TAP_FLAG) {
        back();
        sleep(SHORT_TIME + 1000);
        //點選“瘋搶紅包”進入活動頁
        id("rv_main_container").findOne().child(4).child(0).child(0).click();
        //click(width / 2 + 200, TAOBAO_Y);
        //開始扁貓功能
        taptap();
    }
    home();
    //刷支付寶喵币
    toast("腳本結束^_^");
    //取消螢幕常亮
    device.cancelKeepingAwake();
    sleep(SHORT_TIME);
    exit();
}

function lingQuZhifubao() {
    //toast("正在打開支付寶...");
    app.startActivity({
        packageName: "com.eg.android.AlipayGphone",
        className: "com.eg.android.AlipayGphone.AlipayLogin"
    });
    //waitForActivity("com.eg.android.AlipayGphone.AlipayLogin");
    //sleep(LONG_TIME);
    ui.run(function() {
        w.text.setText("★★★Tips:若長時間無反應請手動打開支付寶首頁");
    });
    text("掃一掃").waitFor();
    //text("付錢/收錢").waitFor();
    //sleep(SHORT_TIME);
    sleep(2000);
    ui.run(function() {
        w.text.setText("★★★如等待較長請手動進入支付寶活動頁");
    });
    //點選進入活動頁,控件的clickable為false,需要點選坐标
    var target=className("android.widget.RelativeLayout").idContains("home_adbannerview").findOne(SHORT_TIME);
    if (target==null) {
        //toast(1);
        target = className("android.widget.FrameLayout").descContains("雙11狂歡節").findOne(2000);
        //有時候兩個按鈕的desc都是雙11,要判斷一下右邊那個
        if (target.bounds().right < (width / 2)) {
            target = className("android.widget.FrameLayout").desc("雙11狂歡節").findOnce(1);
        }
        // toast(target.bounds());
        //下面是點選靠下入口的位置
        click(target.bounds().centerX(), target.bounds().centerY());
        //toast(target.bounds());
    } else {
        //log(idContains("home_adbannerview").findOne(2000));
        //toast(2);
        //10月26日後修改了活動頁位置
        target = descContains("雙11來了,瓜分20億紅包").findOne(2000);
        if (target != null) {
            //toast(3);
            click(parseInt(width / 2), target.bounds().bottom - 100);
        } else {
            //toast(4);
            target = idContains("home_grid_notice_container").findOne();
            //尋找按鍵下方的grid的位置,往上數100個像素就是要點選的縱坐标
            //點選“馬上領取”進入活動頁
            click(parseInt(width / 2), target.bounds().top - 100);
        }
    }
    /*
    if (className("android.widget.Button").text("我的貓,點選撸貓").findOne(2000) == null) {
        click(parseInt(width / 2), target.top - 100);
    }*/
    //sleep(LONG_TIME);
    textContains("我的貓,點選撸貓").waitFor();
    sleep(1000);
    //檢測彩蛋
    ui.run(function() {
        w.text.setText("★★★Tips:按下[音量-]鍵或者長按[懸浮窗内文字]可随時結束腳本");
    });
    if (text("獲得一個待開獎的彩蛋").exists()) {
        text("好的,11月11日見").findOne().click();
        toast("領取彩蛋成功");
        sleep(SHORT_TIME);
    }
    //點選貓旁邊的錢袋子
    //click(PURSE_X, PURSE_Y);
    if (className("android.widget.Button").textContains("點選領取").exists()) {
        className("android.widget.Button").textContains("點選領取").findOne().click();
        text("去喂貓 賺更多喵币").waitFor();
        text("去喂貓 賺更多喵币").findOne().click();
        sleep(SHORT_TIME);
    } //點選賺喵币進入任務頁
    //click(ZHUAN_X, ZHUAN_Y - 100);
    toast("賺喵币");
    if (className("android.widget.Button").text("賺喵币").exists()) {
        className("android.widget.Button").text("賺喵币").findOne().click();
        sleep(SHORT_TIME * 2);
    }
    if (text("簽到").exists()) {
        text("簽到").findOne().click();
        sleep(SHORT_TIME);
        toast("簽到成功");
        sleep(2000);
    }
    while (text("逛一逛").exists()) {
        toast("存在逛一逛");
        text("逛一逛").findOne().click();
        sleep(18000);
        back();
        sleep(SHORT_TIME + 1000);
        if (text("好的,我知道了").exists()) {
            text("好的,我知道了").findOne().click();
            sleep(SHORT_TIME);
        }
        if (text("殘忍離開").exists()) {
            text("殘忍離開").findOne().click();
            sleep(SHORT_TIME);
        }
    }
    //支付寶的“去完成”任務差異較大,其他任務需手動完成
    //施肥任務
    if (text("去芭芭農場施肥一次").exists()) {
        text("去芭芭農場施肥一次").findOne().parent().child(3).click();
        ui.run(function() {
            w.text.setText("★★★正在運作[去芭芭農場施肥一次]任務,如等待較長請手動操作完成");
        });
        sleep(SHORT_TIME);
        //點選“集肥料
        target = className("android.widget.Image").idContains("game").findOne().parent().parent().parent().parent().child(3);
        target.click();
        //點選“去簽到”
        var t = text("去簽到").findOne(3000);
        if (t != null) {
            t.click();
        } else {
            toast("未找到[去簽到],如肥料不夠請手動擷取");
        }
        //關閉任務界面
        className("android.widget.Image").idContains("game").findOne().parent().parent().parent().parent().parent().child(3).child(0).child(1).click();
        sleep(1000);
        //領取當日肥料
        target = className("android.widget.Image").idContains("game").findOne().bounds();
        click(target.centerX() + 230, target.centerY() + target.height() * 0.09);
        t = text("去施肥").findOne(1000);
        if (t != null) {
            t.click();
        }
        //點選施肥
        sleep(1000);
        target = className("android.widget.Image").idContains("game").findOne().parent().parent().parent().parent().child(3);
        click(width / 2, target.bounds().centerY());
        back();
        text("好的,我知道了").findOne().click();
        ui.run(function() {
            w.text.setText("★★★Tips:按下[音量-]鍵或者長按[懸浮窗内文字]可随時結束腳本");
        });
        sleep(SHORT_TIME);
    }
    //澆水任務
    if (text("去螞蟻森林給好友澆水").exists()) {
        ui.run(function() {
            w.text.setText("★★★正在運作[澆水]任務,如澆水上限/等待較長請手動操作完成");
        });
        text("去螞蟻森林給好友澆水").findOne().parent().child(3).click();
        text("種樹").waitFor();
        swipe(width / 2, height - 300, width / 2, 0, 500);
        //點選排行榜第一
        //sleep(1000);
        toast(text("總排行榜").findOne().parent().parent().child(12).child(0).bounds());
        text("總排行榜").findOne().parent().parent().child(12).child(0).click();
        textEndsWith("的螞蟻森林").waitFor();
        sleep(1000);
        target = idContains("J_tree_dialog_wrap").findOne().bounds();
        //點選澆水
        click(target.centerX() - 50, target.bottom - 50);
        className("android.widget.Button").text("澆水送祝福").findOne().click();
        sleep(1000)
        back();
        sleep(2000);
        back();
        text("好的,我知道了").findOne().click();
    }
    //點選貓旁邊的錢袋子
    //click(PURSE_X, PURSE_Y);
    if (className("android.widget.Button").textContains("關閉任務彈窗").exists()){
        className("android.widget.Button").textContains("關閉任務彈窗").findOne().click();
        sleep(500);
        }
    if (className("android.widget.Button").textContains("點選領取").exists()) {
        className("android.widget.Button").textContains("點選領取").findOne().click();
        text("去喂貓 賺更多喵币").waitFor();
        text("去喂貓 賺更多喵币").findOne().click();
    }
    //home();
    //sleep(SHORT_TIME);
    //淘寶領取
    if (MODE == 1) {
        if (TAP_FLAG){
            toast("開始扁貓貓");
            taptap();
            }
        toast("無[逛一逛]任務,腳本結束^_^");
        //取消螢幕常亮
        device.cancelKeepingAwake();
        sleep(SHORT_TIME);
        exit();
    } else {
        toast("無[逛一逛]任務\n結束支付寶,等待打開淘寶...");
        lingQuTaobao();
    }
}

function taptap() {
    //扁貓貓可以獲得額外的蚊子腿喵币
    toast("開始狂扁貓貓功能");
    className("android.widget.Button").text("我的貓,點選撸貓").waitFor();
    for (var i = 0; i < TAP_TIMES; i++) {
        //點選中心位置
        click(parseInt(width / 2), parseInt(height / 2));
        sleep(TAP_INTERVAL);
    }
    toast("扁貓結束");
}

function floatW() {
    //懸浮窗不會自動關閉
    setInterval(() => {}, 1000);
    w.setPosition(0, height - 800);
    w.setSize(400, 300);
    //懸浮窗可調整大小
    w.setAdjustEnabled(true);
    //退出懸浮窗即結束腳本
    //w.exitOnClose();
    //長按懸浮窗内文字結束腳本
    w.text.longClick(() => {
        //取消螢幕常亮
        device.cancelKeepingAwake();
        toast("檢測到長按懸浮窗文字,腳本終止");
        //try...catch把exit()函數的異常捕捉,則腳本不會立即停止,仍會運作幾行後再停止
        try {
            exit();
        } catch (err) {}
        //直接exit()的話堅持不到return的時候
        return true;
    });
}

function killOthersAlive() {
    //擷取全部正在運作的腳本引擎
    var allEngines = engines.all();
    //log(allEngines);
    for (var i = 0; i < allEngines.length; i++) {
        //停掉除了本腳本以外的正在運作的腳本
        if (allEngines[i] != engines.myEngine()) {
            allEngines[i].forceStop();
        }
    }
}      

 2.Auto.js的使用方法

簡單說,Auto.js是一個手機的APP,不需要root權限就能運作自己寫的JS腳本。

  • 安裝AutoJS(可以在此下載下傳https://wws.lanzous.com/b01npfw9g,驗證密碼1234)
  • 在手機上安裝并打開Auto.js,會提示打開輔助功能(各個手機叫法不同,比如三星叫服務,魅族叫無障礙服務)。
關于無障礙功能的開啟,各個手機可能不同,但大緻是一樣的,以MIUI為例,入口在:設定 - 更多設定 - 無障礙 - 已下載下傳的服務 - Auto.js - 開啟服務
  •  給Auto.js開啟 "背景彈出界面" 權限,否則無法啟動第二個app!!!(開啟方法:長按Auto.js,打開應用資訊 - 權限設定,确認“背景彈出界面”權限開啟,見下圖)

  (華為手機找不到這個權限:設定〉應用管理〉設定〉特殊通路權限〉在其他應用的上層顯示〉auto.js)

2020雙十一自動刷淘寶&amp;支付寶喵币Auto.js腳本(安卓适用)
  • 打開Auto.js,點選右下角"+"号,(在這裡選擇“導入”可以導入前面下載下傳的js腳本)選擇“檔案”可以建立新的腳本,随便起個名字,點“确定”,然後把這個部落格上面的代碼完整複制進去,點右上角儲存的圖示
  • 關閉鍵盤,點右上角的小三角運作程式
  • 等待程式運作,超過15s沒反應才是不正常的。(建議鎖屏時間設定為30s及以上)

附加題:Auto.js有自動定時運作腳本的功能,你可以設定這個腳本在每天早上你還沒醒的時候自動運作刷喵币,可以參考如下:

點選腳本右邊的菜單按鈕->更多->定時任務即可定時運作腳本,但是必須保持Auto.js背景運作(自啟動白名單、電源管理白名單等)。同時,可以在腳本的開頭使用

device.wakeUp()

來喚醒螢幕;但是,Auto.js沒有解鎖螢幕的功能,是以難以在有鎖屏密碼的裝置上達到效果。

 3.安卓手機擷取點選螢幕坐标的方法

  • 确認開啟開發者模式
如何打開開發者模式請參考https://baijiahao.baidu.com/s?id=1595634582987842609
  • 進入開發者選項
    • 入口一般是:“設定”-“更多設定”-“開發者選項”
    • 往下滑,找到“指針位置”功能并打開,之後的點選操作都會在螢幕上方顯示坐标,螢幕上的細線不是螢幕壞了,是記錄了你的滑動軌迹
    • 通過這個功能,手動進行打開淘寶進入活動界面刷喵币等操作,根據螢幕上方顯示的坐标修改代碼最前面對應操作的坐标,使得自動點選操作能夠适配你的手機螢幕

    

2020雙十一自動刷淘寶&amp;支付寶喵币Auto.js腳本(安卓适用)

4.寫給小白

  1. 把連結的兩個檔案都下載下傳了(記得自己的下載下傳位置)
  2. 把apk檔案安裝了
  3. 把zip檔案解壓了,得到js檔案(記得解壓位置)
  4. 看上面第二點“Auto.js的使用方法”中,按照上面寫的方法給設定 無障礙 和 背景顯示 權限
  5. 打開Auto.js,點選右下角的+号,選第一個導入腳本,腳本就是第3步你解壓的js檔案
  6. 確定淘寶和支付寶未開啟,或者在首頁,打開手機GPS定位,在Auto.js點選三角号運作腳本(首次運作腳本可能會提示是否允許Auto.js打開支付寶/淘寶,手動點選确認,按[音量-鍵]結束,并重新運作腳本即可)
  7. 如果遇到瞎點的情況,請立即按下手機的[音量-]鍵停止程式,你也可以在Auto.js的首頁-管理中找到正在運作的腳本,點選×關掉它
  8. 如果出錯請告訴我具體執行到哪個階段。

5.寫給進階玩家

  • 在上面的小白的基礎上,可以自己糾錯
  • 比如通過第三點安卓手機擷取點選螢幕坐标的方法讓腳本運作時顯示每次點選的具體坐标,然後修改代碼最開頭的常量,對自己的手機進行适配
  • 通過Auto.js給腳本設定自動運作時間,每天睡覺的時候自動刷
  • 想改啥改啥,注釋寫的很詳細了

Auto.js官方文檔

https://hyb1996.github.io/AutoJs-Docs/#/

 6.Q&A

  • Q:我覺得腳本運作的每步操作等的太久了,有點憨憨

A:穩定性比效率更重要,這是為了照顧老年機和山區的同志,你可以自行修改代碼第5、6行的時間常量,設定小一些。

如果等待時間過短,會出現未加載成功就進行判定和點選操作,進而導緻錯誤的邏輯。

相對的如果你的手機太卡,或者網絡不佳,可以增大這兩個時間常量(需要設定手機鎖屏時間不要過短,否則會鎖屏)。

  • Q:進入活動頁後沒有點“賺喵币”/沒有進入“賺喵币”的任務界面,直接提示“無[逛一逛]任務”就結束支付寶領取流程
A:問題出在1.0版本的一個BUG,已于1.11之後的版本修複
  • Q:開啟扁貓貓功能後出現“TABAO_X未定義”的情況
A:問題出在1.12版本的一個BUG,已于1.13之後的版本修複

 7.注意事項

  • 測試環境是安卓10版本,運作可能需要安卓7版本以上,适合1080p分辨率的全面屏手機
  • 程式并沒有測試所有情況,可能會遇到一些偶然彈窗影響程序,一般手動處理後,關掉腳本和淘寶支付寶,重新運作即可
  • 每天可以通過任務界面最下面的淘寶和支付寶互相打開的按鈕領取10萬喵币,一次性的,請手動完成
  • 累計任務獎勵需要手動領取
  • 喂貓更新需要自己操作
  • 程式的的喚起如果失敗,需要注意是否禁止了被其他程式啟動
  • 由于隻在我自己的小米8上進行了測試,螢幕尺寸1080*2248,針對不同裝置可能需要手動調整代碼最開始的常量,如果你的某一步點選操作失敗,請自行調整代碼最前面的常量以适配你的螢幕
  • 這是一個腳本的想法和驗證,僅供學習交流,下載下傳體驗後,請24小時内删除!!!
  • 非商業性使用 — 不得将此項目及其衍生的項目的源代碼和二進制産品用于任何商業和盈利用途
  • License:本項目使用CC-BY-NC-SA授權,但禁止使用此腳本釋出任何教學視訊!!!

吐槽:主要的坑在于連續啟動兩個app,嘗試了各種方法,原來問題出在權限不夠,感謝這位老哥。