使用具备环境

所用Auto.js版本为Autojs6。
测试手机为华为Mate30,配合李跳跳一起使用。
自动保存日志可以查看,路径为脚本/起点日志.txt。

更新记录:

1.2023年03月27日 增加打开联网应用联网,增加自动解锁屏幕,现在可以定时自动完成
签到及做任务了。需要根据自己的情况删除打开gwifi的代码和更改为自己的解锁密码。

代码如下:

[mw_shl_code=javascript,true]"auto" //系统配置初始化
auto.waitFor();
/*测试正常后注释掉,log不再控制台显示,
从autoJs此脚本设置菜单可查询log.如不需要运行log,将所有log全部注释掉即可*/
console.setGlobalLogConfig({ "file": "/sdcard/脚本/起点日志.txt" });
console.show();
console.log("调整位置...");
console.setPosition(0, 800);
device.setBrightnessMode(0);
device.setBrightness(20);
setScreenMetrics(1080, 2340);//可不设置,理论上自适应各个主流分辨率
 
//存储记录初始化
currentTime = new Date();
var currentDate = currentTime.getFullYear() + "-" + (currentTime.getMonth() + 1) + "-" + currentTime.getDate();
currentDate.toString();
var storage = storages.create("QDReaderCheck");
log("初始化完毕");
log("检查当前日期:" + currentDate);
console.hide();
sleep(1000)
 
console.hide();
unlock()
//打开GWIFI联网
launch("com.gbcom.gwifi");
waitForPackage("com.gbcom.gwifi");
log("GWIFI启动完成");
sleep(10000);
killApp("com.gbcom.gwifi")
sleep(1000); 
home()
sleep(1000);
 
// 输入密码
function password_input()
{
    var password = "******"
    for(var i = 0; i < password.length; i++)
    {
        var p = text(password[i].toString()).findOne().bounds();
        click(p.centerX(), p.centerY());
        sleep(100);
    }
}
//解锁屏幕
function unlock()
{
    if(!device.isScreenOn())
    {
        device.wakeUp();
        sleep(500);
        swipe(500,2000,500,1000,210);
        password_input();
    }
}
 
//启动起点读书开始执行脚本功能
launch("com.qidian.QDReader");
waitForPackage("com.qidian.QDReader");
log("起点读书启动完毕");
sleep(7000);
 
var btnOk =id("btnOk").findOnce();
if (btnOk != null){
    btnOk.click();
    sleep(1000);
    }
var qiandao=id("button_text_id").className("android.widget.TextView").text("签到").findOne(1000);
if (qiandao!=null){
    log("判断是否签到")
    click(qiandao.bounds().centerX(), qiandao.bounds().centerY())
    toast("签到完成!");
    log("判断退出键是否出现")
    var tuichuqiandao=className("android.widget.ImageView").depth(5).findOne(1000);
    click(tuichuqiandao.bounds().centerX(), tuichuqiandao.bounds().centerY())
    sleep(1000)
    var btnOk =id("btnOk").findOnce();
if (btnOk != null){
    btnOk.click();
    sleep(1000);
    }
    zuorichang()
    toast("每日福利已完成,自动退出");
    sleep(1000);
    killApp("com.qidian.QDReader")
    sleep(1000); 
    home()
    engines.stopAllAndToast();
    }
else{
    toast("您已经签到过了!");
    zuorichang()
    toast("每日福利已完成,自动退出");
    sleep(1000);
    killApp("com.qidian.QDReader")
    sleep(1000); 
    home()
    engines.stopAllAndToast();
}
function zuorichang(){
        log("做日常中")
        var dianjiwo =id("view_tab_title_title").className("android.widget.TextView").text("我").findOne(1000);
        if (dianjiwo!= null) {
            click(dianjiwo.bounds().centerX(),dianjiwo.bounds().centerY());  
        }
        var fulizx=className("android.view.ViewGroup").childCount(3).depth(16).drawingOrder(1).row(0).findOne(1000);
        if (fulizx!= null) {
            click(fulizx.bounds().centerX(),fulizx.bounds().centerY());  
             }
             sleep(3000)
             var tiaoguo=text("跳过教程").findOne(1000);
        if (tiaoguo!= null) {
            click(tiaoguo.bounds().centerX(),tiaoguo.bounds().centerY());  
           }  
AutoRW()         
gestures([350, [540, 2000], [540, 1000]]);
            sleep(1000);
            var kanship=text("看视频").findOne(1000);
            if (kanship!=null)
            {
                click(kanship.bounds().centerX(),kanship.bounds().centerY());
            closeAD();
            sleep(1000);
            }
gestures([350, [540, 2000], [540, 1000]]);
var kanship=text("看视频").findOne(1000);
if (kanship!=null)
{
    click(kanship.bounds().centerX(),kanship.bounds().centerY());
    closeAD();
    sleep(1000);
      var happyget=bounds(129,1473,951,1620).findOne(1000);
        if (happyget!=null)
         {
         log("自动点击开心收下");
         click(happyget.bounds().centerX(), happyget.bounds().centerY())
         log("点击成功2");
         sleep(1000);
         }
         else
         {
        click(540,1545);
        log("点击成功3");
        sleep(1000);
         }
}
}
//关闭广告
function closeAD()
{
    log("等待广告加载…");
    var a1= text("观看完视频,可获得奖励").exists();
    var b1= text("观看视频15秒后,可获得奖励").exists();
    if (a1||b1) {
        log("广告加载完毕,播放中…");
    }
    var a= text("观看完视频,可获得奖励").findOnce();
    var b= text("观看视频15秒后,可获得奖励").findOnce();
  while (a==null&&b==null) {
 
        sleep(1000);
        closeAD();
        break;
    }
if(b!=null){
        sleep(15500);
        
var closedad=className("android.view.View").bounds(66,147,114,198).findOne(1000);
if (closedad!=null){
 log("自动点击退出按钮");
    click(closedad.bounds().centerX(), closedad.bounds().centerY())
    }
else{
    log("点击退出按钮");
        click(92,170);
  
    }
}
if(a!=null){
        sleep(8500);
        
var closedad=className("android.view.View").bounds(63,144,117,201).findOne(1000);
if (closedad!=null){
 log("自动点击退出按钮");
    click(closedad.bounds().centerX(), closedad.bounds().centerY())
    }
else{
    log("点击退出按钮");
        click(92,170);
  
    }
}
}
//关闭应用
function killApp()
{
    let packageName = currentPackage();
    app.openAppSetting(packageName);
    sleep(random(1000, 2000));
    text(app.getAppName(packageName)).waitFor();
    let is_sure = textMatches(/(.*强.*|.*停.*|.*结.*|.*行.*)/).findOne();
    if (is_sure.enabled()) {
        textMatches(/(.*强.*|.*停.*|.*结.*|.*行.*)/).findOne().click();
      sleep(500);
      click(764,2178);
        log(app.getAppName(packageName) + "应用已被关闭");
        sleep(random(1000, 2000));
        back();
    } else {
        log(app.getAppName(packageName) + "应用不能被正常关闭或不在后台运行");
        back();
        sleep(random(1000, 2000));
    }
}
//自动任务
function AutoRW()
{
    log("等待进入福利中心…");
    var c1= bounds(132,1371,948,1494).exists();
    var d1= text("明天再来吧").exists();
    if (c1||d1)
    {
        log("已进入福利中心…");
    }
    var c= bounds(132,1371,948,1494).findOnce();
    var d= text("明天再来吧").findOnce();
    while (c==null&&d==null)
    {
        sleep(1000);
        AutoRW();
        break;
    }
    log("判断任务是否做完");
    if(d!=null)
    {
 
        while(d!=null)
        {
            toast('看视频得章节已完成')
            break
        }
         
    }
    else
    {
       log("开始执行循环"); 
    var clickrw=bounds(132,1371,948,1494).findOne(1000);
     if (clickrw!=null)
     {
       log("自动点击退出按钮");
 
       click(clickrw.bounds().centerX(), clickrw.bounds().centerY())
       log("点击成功1");
       closeAD();
       sleep(1000);
       var happyget=bounds(129,1473,951,1620).findOne(1000);
         if (happyget!=null)
         {
           log("自动点击开心收下");
 
           click(happyget.bounds().centerX(), happyget.bounds().centerY())
           log("点击成功2");
           sleep(1000);
           AutoRW();
         }
       else
         {
            click(540,1545);
            log("点击成功3");
       sleep(1000);
       AutoRW();
        }
      }
    }
 }

别的手机的用户想操作应该怎么办

只需要把click里面的坐标系改成你手机的实际坐标就可以。