georgehuan1994/DingDing-Automatic-Clock-in

关于脚本执行停留在:连接钉钉考勤机

Closed this issue · 16 comments

我使用qq发送通知后,auto.js能够获取通知并且执行脚本,但是在打开钉钉后就已经自动打卡,无需连接考勤机,所以会导致执行到打卡界面后程序就不再有任何动作了,我等待几分钟后无果,查看脚本日志发现也只执行到了连接考勤机那一步,后面一直是“nul”,请问这个该怎么做,虽然我通过发送打卡后等待两分钟后在发送暂停,在等待之后发送查询也能够获取到打卡信息,但是这脚本的后续仍然没有执行,也没有自动发送消息,请问这种情况我应该怎么做?

说明没有监听到打卡成功的通知,因为监听到有效通知后会中止打卡流程。你在日志里看一下,打卡成功后发出的通知是什么,修改监听的关键字

说明没有监听到打卡成功的通知,因为监听到有效通知后会中止打卡流程。你在日志里看一下,打卡成功后发出的通知是什么,修改监听的关键字

好的,谢谢,我尝试一下

说明没有监听到打卡成功的通知,因为监听到有效通知后会中止打卡流程。你在日志里看一下,打卡成功后发出的通知是什么,修改监听的关键字

今早我QQ发送了消息后,脚本执行了,打卡了,也退出钉钉了,但是发送消息却卡在了QQ,我给您看看日志
}{@}H)9`FV (VWN5TV6$HJD

QQ的聊天界面没有被唤醒,检查下输入的QQ号是不是对的,另外在应用设置中允许QQ后台弹窗

QQ的聊天界面没有被唤醒,检查下输入的QQ号是不是对的,另外在应用设置中允许QQ后台弹窗

并非QQ聊天界面没有唤醒,而是已经在QQ的聊天界面了,我检查了QQ的权限,我发送到打卡手机是有通知的,弹窗也允许了,今早是在QQ聊天界面停滞,不发送消息,查看日志是上面的:“百度输入法”,我发送给查询之类的消息都是能够发送的。
感谢大佬解答,我今天下班再测试一下,以及下周再测试一下,看看还会不会有这样的问题

看下聊天界面的输入框,有填充上文本吗?

看下聊天界面的输入框,有填充上文本吗?
经测试,没有文本填充,偶有上滑解锁失败的情况出现,出现后脚本就会直接停止运行
1
2

看下聊天界面的输入框,有填充上文本吗?

今天早上也没有发送消息,就是tasker任务执行打卡后停留在发送消息界面,无文本填充,之后我查询后才知道打卡成功,之后查询也是无消息回复
3
这是我发送消息后等待结果截图

/**
 * @description 发送QQ消息
 * @param {*} message 消息内容
 */
function sendQQMsg(message) {

    console.log("发送QQ消息")
    
    brightScreen()      // 唤醒屏幕
    unlockScreen()      // 解锁屏幕

    app.startActivity({ 
        action: "android.intent.action.VIEW", 
        data:"mqq://im/chat?chat_type=wpa&version=1&src_type=web&uin=" + QQ, 
        packageName: "com.tencent.mobileqq", 
    });
    
    waitForActivity("com.tencent.mobileqq.activity.SplashActivity")
    console.info("已拉起聊天界面!")

    // id("input").findOne().setText(message)
    // id("fun_btn").findOne().click()

    sleep(1000)

    var input_field= id("input").findOne()
    input_field.setText(message)
    console.info("填充文本!")

    sleep(1000)

    var btn_send= id("fun_btn").findOne()
    btn_send.click()
    console.info("点击发送按钮!")

    home()
    sleep(1000)
    lockScreen()    // 关闭屏幕
}

替换这个方法,再调试看看,还是有问题的话,贴下安卓端卡住时的屏幕截图和日志截图

/**
 * @description 发送QQ消息
 * @param {*} message 消息内容
 */
function sendQQMsg(message) {

    console.log("发送QQ消息")
    
    brightScreen()      // 唤醒屏幕
    unlockScreen()      // 解锁屏幕

    app.startActivity({ 
        action: "android.intent.action.VIEW", 
        data:"mqq://im/chat?chat_type=wpa&version=1&src_type=web&uin=" + QQ, 
        packageName: "com.tencent.mobileqq", 
    });
    
    waitForActivity("com.tencent.mobileqq.activity.SplashActivity")
    console.info("已拉起聊天界面!")

    // id("input").findOne().setText(message)
    // id("fun_btn").findOne().click()

    sleep(1000)

    var input_field= id("input").findOne()
    input_field.setText(message)
    console.info("填充文本!")

    sleep(1000)

    var btn_send= id("fun_btn").findOne()
    btn_send.click()
    console.info("点击发送按钮!")

    home()
    sleep(1000)
    lockScreen()    // 关闭屏幕
}

替换这个方法,再调试看看,还是有问题的话,贴下安卓端卡住时的屏幕截图和日志截图

好的。今天上午也是打卡之后无消息发送,卡在QQ发送消息界面且无文本填充,我先替换一下,中午左右在测试查询看看结果

反馈:中午查询也是无结果,当时未截屏和看日志就远程了,是停留在QQ界面的,下午4点20多查询无结果反馈,请看图
1
2
1 5
2 5

waitForActivity("com.tencent.mobileqq.activity.SplashActivity")

这个地方阻塞了,把这行代码注释掉吧。

好的,我注释之后再测试吧,短时间查询是没有问题的,隔段时间在查询看看

反馈:经过昨天上午注释后,中间间隔超四小时以上查询无问题,下班自动执行发送消息正常,今早上班打卡正常,以上测试均是在手机屏幕常亮的情况下完成(其实是手机不知道怎么回事不锁屏了,之前为了先测试打卡就没管),接下来我将找出手机不锁屏的原因然后再做一下测试给予开发者反馈

今日最新反馈,今早上班打卡正常,查询一次结果也正常,就在我午休结束后查询一次后,无结果反馈,且停留再QQ界面,非聊天对话界面,之前是有停留在QQ聊天界面的只是无文本填充,而我手动点击聊天对话就会立即填充文本发送然后退回手机主界面,请看图片
3
1
2 2

补充,我去掉了锁屏,就是打开开发者模式将锁屏给关掉了,屏幕亮起就是主屏幕,无须滑动解锁,所以暂时不存在解锁失败而脚本停止执行的问题,且上午说的屏幕不息屏的问题也已经解决