寫在前面
最近有不少人給我推薦京東極速版,讓我幫忙寫腳本刷金幣,筆者今天抽空研究了下,做了個初稿出來(非UI版本)
關注微信公眾號“口袋閱打卡小助手”,后臺回復"京東極速版",獲取腳本檔案(腳本檔案將在文末開源,大家安心哦)

腳本介紹
腳本完成的功能比較簡單,代碼量也較少,不過已經足夠幫助大家完成重復的勞動了
支持自動完成"看商品"、"看視頻"以及"看活動"任務
腳本運行程序中,如需退出,按音量上鍵即可退出運行
筆者這里就不贅述匯入腳本的程序了,需要腳本源檔案的可以復制文末的代碼,也可以關注公眾號回復關鍵字"京東極速版"獲取
注意事項:
1、你需要有Autojs這個APP(安卓系統需要是Android7.0及以上版本),沒有APP的可以去公眾號回復“autojs”獲取安裝包
2、你需要懂得開啟無障礙模式(腳本運行的時候會提示,不懂的也可以看我公眾號或者博客里面的其他文章參考)
3、腳本僅供學習使用
由于筆記也是今天剛剛接觸京東極速版APP,還有很多不熟悉的地方(第一次玩,也在研究階段),腳本制作程序中難免有所bug,大家遇到問題可以多多提出來,筆者看到也會第一時間更新腳本
運行效果

腳本代碼
auto.waitFor();
console.show();
console.log('腳本將在5-10秒后開始,將自動打開京東極速版');
console.log('---------------')
console.error('注意:如果腳本無法正常運行,可能是由于螢屏解析度設定錯誤導致,請看原始碼中引數設定部分,按照自己設備調節引數即可')
console.warn('另外:如果需要在中途退出腳本,請按音量上鍵,即可停止腳本執行')
//初始化引數,注意,筆者在這里測驗的時候,設備width和height獲取到的值為1,導致后面腳本滑動報錯
//所以筆者手動添加了自己手機的解析度,經過查詢,該問題別人也有發現,需要等待Autojs解決
//大家根據自己的情況手動更改下面的引數(1080和1920)即可,不過,如果腳本正常運行,可以不用更改
let width = device.width || 1080;
let height = device.height || 1920;
setScreenMetrics(width, height);
//初始化方法
function init() {
events.observeKey();
events.on("key", function (keyCode, event) {
if (keyCode == keys.volume_up) {
toastLog("音量上鍵按下,結束腳本");
exit();
}
});
}
//常量定義
let JD_NAME = 'com.jd.jdlite';
//彈框
function myAlert(val) {
alert('溫馨提示', val);
}
//打開京東極速版
function openJD(name) {
return launch(name);
}
//看一次商品任務
function doShopTask(shopBtn) {
shopBtn.click();
sleep(2000);
var count = 0;
while (count++ < 17) {
MySwipe();
MySleep(0.5, 2);
}
back();
sleep(3000);
}
//看一次活動任務
function doActiveTask(activeBtn) {
activeBtn.click();
sleep(2000);
var count = 0;
while (count++ < 17) {
MySwipe();
MySleep(0.5, 2);
}
back();
MySleep(2, 4);
}
//看視頻任務
function doVideoTask(videoBtn) {
videoBtn.click();
var child = idEndsWith('text_title').findOne();
toastLog('識別文本:' + child.text());
click(child.text(), 0);
for (var i = 0; i < 50; i++) {
var count = 0;
while (count++ < 80) {
MySleep(0.5, 0.6);
}
MySwipe();
toastLog('完成第' + i + '次看視頻回圈');
if (videoIsEnd()) {
toastLog('識別到今日已完成,結束看視頻:');
break;
}
}
}
//判斷視頻是否結束
function videoIsEnd() {
var isEnd = text('今日已完成').findOne(2000);
if (isEnd) {
return true;
}
return false;
}
//找任務按鈕
function findTaskBtn(type) {
var taskBtnGroup = text('去賺錢').untilFind();
var btn;
taskBtnGroup.forEach(function (item) {
if (type == 1 && !item.parent().findByText('逛商品賺金幣').empty) {
btn = item;
} else if (type == 2 && !item.parent().findByText('逛活動賺金幣').empty) {
btn = item;
} else if (type == 3 && !item.parent().findByText('看視頻賺金幣').empty) {
btn = item;
}
});
return btn;
}
//找‘我的’
function findMyBtn() {
var myBtn = className("android.view.View").desc("我的").findOne();
return myBtn;
}
//啟動函式
function main() {
init();
if (!openJD(JD_NAME)) {
toastLog('未安裝京東極速版哦!');
return;
}
//找到‘我的’
var myBtn = findMyBtn();
myBtn.click();
//判斷任務是否需要執行
var btn;
var i = 1;
while (btn = findTaskBtn(1)) {
doShopTask(btn);
toastLog('第' + i + '次看商品完成');
if (++i > 100) {
break;
}
}
toastLog('商品任務結束');
i = 1;
while (btn = findTaskBtn(2)) {
doActiveTask(btn);
toastLog('第' + i + '次看活動完成');
if (++i > 30) {
break;
}
}
toastLog('活動任務結束');
if (btn = findTaskBtn(3)) {
toastLog('視頻按鈕找到了');
doVideoTask(btn);
}
toastLog('視頻任務結束');
exit();
}
function random(min, max) {
return Math.round(Math.random() * (max - min)) + min;
}
function MySwipe() {
var sX = random(100, width - 100);
var sY = random(height / 2 + 100, height - 100);
var eY = random(100, height / 2 - 100);
swipe(sX, sY, sX, eY, random(100, 120));
}
function MySleep(Min, Max) {
sleep(random(Min * 1000, Max * 1000));
}
main();
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/242915.html
標籤:其他
上一篇:對其獲取資料以及token的封裝
