使用具备环境

所用 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();
        }
      }
    }
 }
Plain text

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

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