Giter Club home page Giter Club logo

dingding-automatic-clock-in's People

Contributors

georgehuan1994 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dingding-automatic-clock-in's Issues

FLAG_ACTIVITY_NEW_TASK

Wrapped android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
我在运行事件监听的时候遇到这样一个错误,怎么处理?

如何运行 auto js 的 调用 邮件发送列表时 获取该 弹窗及其里面的元素 ?

如题 ,你好,现在这个邮件发送的问题一直困扰我,

即在这段代码
app.sendEmail({
email: [EMAILL_ADDRESS],
subject: "考勤结果",
text: message
})

后 弹窗了 邮件发送应用列表 窗体, 我该如何 获取访窗口及其里面的应用 呢 ?

我想用 FloatyWindow.{id} 的方式获取 ‘网易邮箱大师’ 然后模拟点击,

图片

现在问题是这个窗口句柄 及 窗口上的 应用名称 id 该 如何 获取 ,请赐教, 谢谢。

请教一下,该怎么用呢?

最近公司换了钉钉,我想着来这找找有没有解决之道,就发现了这个。但应该怎么用呢?.js文件好像无法下载,我复制了raw,在auto.js里新建了文件然后粘贴进去,运行报错。有点迷茫啊,纯粹的新手小白,希望您能给个教程或简单说一下应该怎么做

请问启动的时候出现这个错误是什么原因呀,魅族手机

18:00:49.516/E: Wrapped java.lang.NullPointerException: Attempt to read from field 'int android.accessibilityservice.AccessibilityServiceInfo.flags' on a null object reference (/storage/emulated/0/脚本/DingDing-Automatic-Clock-in.js#80)
Wrapped java.lang.NullPointerException: Attempt to read from field 'int android.accessibilityservice.AccessibilityServiceInfo.flags' on a null object reference
at /storage/emulated/0/脚本/DingDing-Automatic-Clock-in.js:80:

第80行是这个代码
events.observeKey()

发送邮件时提示未获取权限

把程序停留在应用选择界面,自己打开网易邮箱大师。
也是没权限上传不了附件

但是如果选择其他应用,比如钉钉又是可以把文件发送出去的。

而且从文件管理器手动分享文件,用网易邮箱大师也能发出去。

好怪

关于Wi-Fi打卡问题

没有Wi-Fi考勤机,直接连实验室Wi-Fi打卡,需要修改哪些参数呢?没接触过autojs,望不吝赐教。

问下用thread能唤醒屏幕吗?

问下用thread能唤醒屏幕吗?

var hour1 = 08, min1 = 20, second1 = 30;
run();
//实时显示脚本运行时长,并对返回的时长与设定的时长进行判断
function run() { //声明运行函数
    threads.shutDownAll();
    threads.start(function () {
        while (true) {
console.show();
console.log(new Date().getSeconds());
            if ((new Date().getHours() * 1 == hour1 && new Date().getMinutes() * 1 == min1 ) {
             
                if (!device.isScreenOn()) {
                    device.wakeUp();
                    sleep(1000);
                    swipe(500, 0, 500, 1900, 2000);
                 gotoDaKa();
                 back();
                    sleep(2000);
                    run();
                }
                else {
                   gotoDaKa();
                    back();
                    sleep(2000);
                    run();
                }
            }
            sleep(1000);
        }
    });
}

ps:在不息屏的情况下执行没问题,但是在息屏threads好像没执行了,问下怎么解决?

Thread[ScriptThread-1[[remote]DingDing-Automatic-Clock-in.js] (Spawn-6),5]: ReferenceError: "PACKAGE_NAME_DD" is not defined. ([remote]DingDing-Automatic-Clock-in.js#352)

[Extension Host] 01:25:40.094/D: 唤醒设备
workbench.desktop.main.js:62 [Extension Host] 01:25:40.106/I: 设备已唤醒
workbench.desktop.main.js:62 [Extension Host] 01:25:40.114/I: 设备已唤醒
workbench.desktop.main.js:62 [Extension Host] 01:25:42.115/D: 解锁屏幕
workbench.desktop.main.js:62 [Extension Host] 01:25:42.120/D: 解锁屏幕
workbench.desktop.main.js:62 [Extension Host] 01:25:44.169/I: 屏幕已解锁
workbench.desktop.main.js:62 [Extension Host] 01:25:44.198/E: Thread[ScriptThread-1[[remote]DingDing-Automatic-Clock-in.js] (Spawn-6),5]: ReferenceError: "PACKAGE_NAME_DD" is not defined. ([remote]DingDing-Automatic-Clock-in.js#352)ReferenceError: "PACKAGE_NAME_DD" is not defined. at signIn ([remote]DingDing-Automatic-Clock-in.js:352:0) at doClock ([remote]DingDing-Automatic-Clock-in.js:196:0) at [remote]DingDing-Automatic-Clock-in.js:123:0
workbench.desktop.main.js:62 [Extension Host] 01:25:44.493/I: 屏幕已解锁
workbench.desktop.main.js:62 [Extension Host] 01:25:44.501/E: Thread[ScriptThread-3[[remote]DingDing-Automatic-Clock-in.js] (Spawn-4),5]: ReferenceError: "PACKAGE_NAME_DD" is not defined. ([remote]DingDing-Automatic-Clock-in.js#352)ReferenceError: "PACKAGE_NAME_DD" is not defined. at signIn ([remote]DingDing-Automatic-Clock-in.js:352:0) at doClock ([remote]DingDing-Automatic-Clock-in.js:196:0) at [remote]DingDing-Automatic-Clock-in.js:123:0

这是啥原因··
小米5 MIUI10

如何启动?

麻烦问一下, 我将代码的配置参数修改了一下, 就直接将代码放入到autojs中跑了一下, 结果报错了
image

进入考勤页面 未成功打卡

完全不懂技术的新人求问
根据tasker设定的定时提醒
设备定时唤醒
随机时间后启动钉钉
一段时间后打开考勤页面
之后再考勤页面 没有点击上班/下班打卡
之后屏幕关闭

看日记显示有操作下班打卡 但实际未点击下班
这个地方是缺少什么操作吗
还是需要调试页面打卡位置坐标(看页面说明是根据窗口句柄)

WechatIMG103

外勤,备注

你好,请问外勤打卡怎么搞,加上填写备注。
刚接触,不懂怎么找到这两个按钮。

打卡页面需要刷新

小米手机MIUI13,早上打卡之后还停留在打卡页面,下午在进行打卡时打卡页面提示,请刷新页面后再打卡,往往需要杀掉进程,重新进入才行。
非必现问题。
我尝试在打卡后退一步回到钉钉消息页,既打卡后back(),在监听钉钉返回的考勤结果增加setTimeout,有时可以生效。

  if (packageId == PACKAGE_ID_DD && text.indexOf("考勤打卡") >= 0) {
    setTimeout(function () {
      setStorageData("dingding", "clockResult", text)
      threads.shutDownAll();
      threads.start(function () {
        switch (DEFAULT_MESSAGE_DELIVER) {
          case PUSH_METHOD.QQ:
            sendQQMsg(text);
            break;
          case PUSH_METHOD.Email:
            sendEmail("考勤结果", text, cameraFilePath);
            break;
          case PUSH_METHOD.ServerChan:
            sendServerChan("考勤结果", text);
            break;
          case PUSH_METHOD.PushDeer:
            sendPushDeer("考勤结果", text);
            break;
        }
      });
    }, 5000);
    return;
  }

点击打卡按钮无效,是不是和手机屏幕分辨率有关系?

请问下,我发现在执行click(device.width / 2, device.height * 0.560) 的时候感觉程序没点到那个打卡的按钮。怀疑是不是因为分辨率的关系实际点的是旁边的空白地方,不是打卡的按钮上。我应该如何得到这个打卡按钮的实际坐标并且写入程序中呢? 类似这种click(1440,900)?

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

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

关于一直卡登陆界面的问题

有时候没登录一直在死循环signIn这个函数,是因为et_pwd_login这个获取不到吗,但是钉钉界面确实在登录页,很奇怪。顺便想问下有什么工具可以查看组件id名?我搞前端的,对安卓不是太懂。。。

小米无法启动钉钉

当界面处于autojs时运行代码可以正常打开应用,而当手机处于home界面则无法启动,请教一下大佬,这种情况该怎么下手去解决

关于远程打卡

图片

图片

我理解的原理 是, tasker 定期发 特定文本的 通知 , 由auto.js 监听捕获特定通知 , 然后执行JS脚本进行打卡,

非常好的思路, 我想问下远程打卡, 发邮件是指发送到绑定 网易邮箱大师的邮件吗, 发送邮件后似乎不能发出相应的 打卡通知 ?

多组织不能使用

楼主,测试了一下,如果加入了多组织,会停止在多组织悬浮选择框处,要手动选择

auto.js运行脚本报错,安卓10

更改了对应的配置信息如的dingding账号密码等之类的,测试运行一下DingDing-Automatic-Clock-in.js 却发现报错了。麻烦看一下是啥原因?


[/storage/emulated/0/脚本/DingDing-Automatic-Clock-in.js]运行结束,用时0.070000秒
20:44:30.083/V: 开始运行[/storage/emulated/0/脚本/DingDing-Automatic-Clock-in.js]
20:44:30.130/D: { major: 4, minor: 1, revision: 0, buildType: 100, build: 1 } { major: 4, minor: 1, revision: 1, buildType: 0, build: 2 }
20:44:30.142/E: Wrapped java.lang.NullPointerException: Attempt to read from field 'int android.accessibilityservice.AccessibilityServiceInfo.flags' on a null object reference (/storage/emulated/0/脚本/DingDing-Automatic-Clock-in.js#72)
Wrapped java.lang.NullPointerException: Attempt to read from field 'int android.accessibilityservice.AccessibilityServiceInfo.flags' on a null object reference
at /storage/emulated/0/脚本/DingDing-Automatic-Clock-in.js:72:0

20:44:30.143/V:

关于 几处我做了些修改

function signIn() {// 4.进入钉钉
var lgAc = false
var Lg = true
app.launchPackage(BUNDLE_ID_DD)
console.log("启动" + app.getAppName(BUNDLE_ID_DD) + "...")
//sleep(2*1000) // 等待钉钉启动
while(currentPackage()!=BUNDLE_ID_DD){
sleep(1000)
console.log("未启动APP重试")
app.launchPackage(BUNDLE_ID_DD)
}
while(Lg){
console.log(currentActivity())
switch (currentActivity())
{
case "android.widget.FrameLayout":
if (id("home_bottom_tab_text_highlight").exists())
{
console.log("已进入")
lgAc=true
Lg=false
} else {
console.log("启动APP等待中")
lgAc=false
}
break;
case "com.alibaba.android.user.login.SignUpWithPwdActivity":
console.info("账号未登录")
var account = id("et_phone_input").findOne()
account.setText(ACCOUNT)
console.log("输入账号")
var password = id("et_pwd_login").findOne()
password.setText(PASSWORD)
console.log("输入密码")
var btn_login = id("btn_next").findOne()
btn_login.click()
console.log("正在登陆...")
//com.alibaba.android.dingtalkbase.widgets.dialog.DDProgressDialog
break;
}
console.log(currentActivity())
sleep(1000)
if (lgAc==true) break
}
}
1、因为 进入 因机器 不同有的启动慢,有的启动快,所以 这里加的个循环控制
2、是进入 考勤 有些定位 快,有些定位慢,所以 也加了个循环
function InKaoQin(){// 6.进入考勤页
var url_scheme = "dingtalk://dingtalkclient/page/link?url=https://attend.dingtalk.com/attend/index.html"
if(CORP_ID != "") { url_scheme = url_scheme + "?corpId=" + CORP_ID }
var a = app.intent({
action: "VIEW",
data: url_scheme,
//flags: [Intent.FLAG_ACTIVITY_NEW_TASK]
});
app.startActivity(a);
console.log("正在进入考勤界面...")
while (null == textStartsWith("已进入考勤").findOne(1000)){
console.info("GPS")
sleep(1000)
}
console.info("GPS--OK")
if (null != textMatches("申请").clickable(true).findOne(3000)) {
console.info("已进入考勤界面")
}else{
console.log("未找到考勤界面...")
}
}

是否需要常亮屏幕

这个是否需要常亮屏幕?还是可以关闭屏幕,唤醒时自己解锁屏幕打卡

无法填充QQ消息

版本

安卓版本:7.1
QQ版本:8.8.55

现象

自动跳转到指定QQ联系人对话框就没有了,没有在输入框输入内容并点击发送

代码

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")
    // input("输入") // 不生效
    console.log(setText("输入")); // 返回false,找不到输入框
    id("input").findOne().setText(message);
    id("fun_btn").findOne().click();
    // home()
    // sleep(1000)
    // lockScreen()    // 关闭屏幕
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.