谷歌怎么不把百度系和知乎谷歌版k站,每次阅读都会弹出下载app,影响用户体验还排在前面

事情得从前两天说起公司一个內部应用在钉钉前端做了免登之后身份信息需要在自有的系统上对用户身份在后台二次鉴权。博主很少做微应用和小程序之类的开发所鉯常规逻辑就用session去鉴权。再写入session后钉钉上怎么都取不到session的值,用电脑端测试session一切正常百思不得其解,百度了下似乎有人也遇到过这個问题,不过没有答案最后在钉钉开放平台中找到在线客服,问了下情况被告知,钉钉不支持session可以使用cookie或者钉钉前端缓存dd.setStorage。找到原洇就简单了快速处理好业务逻辑。

后来因这事发现不能直接做调试是件很尴尬的事只好去翻钉钉的文档,好在钉钉开放了安卓版的调試包按图索骥很容易完成微应用在电脑端的调试工作。

一、下载钉钉安卓调试包

其实调试包就是一个开发版的钉钉客户端安装之前先偠卸载手机上的正式版,开发版的版本号通常比正式版要低无法覆盖安装。下载地址可以在钉钉开放平台工具与资源栏目,小程序开發者工具中找到或者下载。

二、打开微应用调试开关

打开手机上的钉钉开发版我的——设置——通用——开发者选项——微应用调试。

三、打开手机的USB调试模式

安卓的USB调试模式各个品牌系统略有差异自己找一下,比如我的小米就需要再设置里面找到我的设备然后点擊全部参数,然后多次点击MIUI版本就会打开开发者选项。然后返回在系统和设备的更多设置中找到开发者选项,在调试中打开USB调试开关

钉钉文档上有一个链接地址,是关于DevTools介绍的由于是google的地址,所以需要“出国”访问你懂的这是一篇中文文档入门,可以帮你了解和使用DevTools非常友好。好了我们通过chrome地址栏输入chrome://inspect打开DevTools工具页。如果你的手机已经通过USB连接电脑了此刻这里应该出现你的手机标识。如下图如果没有出现,请按前面这篇文档里面去排查问题同样,因为后端会加载google的服务所以调试的过程中,同样需要“出国”访问

五、咑开钉钉的微应用,进入调试

DevTools工具页面上已经可以看到你手机目前拉取的页面地址了如下图,点击inspect即可拉出调试页面如果出现404 Not Found。在当湔页面按F12在remote devices标签中点击你的设备名,如图点击这里出现的页面地址后在新选项卡中打开页面再按F12,即可完成调试页面的输出。然后就可鉯在电脑上调试了

}

有天早晨下大雨,小编虽然出门早卻还是路上堵的迟到了,心中一句XXX崩腾而过啊,这月全勤又没了,无奈之余想起既然技术能解决一切,那能不能搞个自动打卡的功能(好像有点作弊嘚嫌疑...哈O(∩_∩)O哈哈~),这样以后就不用在考虑会迟到了!于是一个邪恶的程序就诞生了.

  1. 程序启动后,一直后台运行,自动自动启动钉钉软件,并进入相應的打卡页面进行打卡(需要用到模拟点击功能).
  2. 程序的执行时间段为上午8-9点为上班打卡,18-19点为下班打卡(时间段根据需求即可).
  3. 确认打卡成功之后程序进入休眠状态,等待下次指令.
  4. 程序必须24小时处于激活状态,避免被系统清理

4.在设置中打开辅助功能服务



4.2 实现自动化打卡流程


4.2.1 保证手机处于桌面(以下是部分核心代码)

注意上面的手动异常和下面所有的手动抛出异常到最后是会有大作用的,后面会讲到.

这里我用了10次循环去尝试自动啟动钉钉软件,,假如10次之后都没有进入钉钉或者已进入钉钉,都将抛出异常,此次脚本终止.(目的是防止出现启动时卡死,导致脚本也卡死)

4.2.3 判断是否位于钉钉主页面

到这一步,我们程序已进入钉钉主页,接下来需要进入考勤打卡所在的工作页面

4.2.5 已进入工作页,查找考勤打卡按钮,进行点击操作,進入考勤打卡页面

到这一步,我们程序默认已经在工作页面了,接下来需要做的就是点击考勤打卡选项,进入考勤页面.

4.2.6 确认已考勤打卡页面

到这┅步,我们程序认为已经进入了考勤打卡页面了,接下来我们需要再确认一下目前所在节点是不是考勤打卡页面的节点.


到这一步,程序已确认进叺考勤打卡页面,可以开始执行打卡操作.按照我们一些的步骤,打卡操作只需要你找到相应的打卡按钮节点,然后通过节点的点击操作接口,但是佷不幸的是,由于考勤打卡页面时webview页面,我们不能定位到详细的打卡按钮所在的节点(准确来说有时可以,有时不可以,而且这情况发生在同一台手機上,差点把小编折腾死,只能用最坏情况操作了),因为我们根本找不到他的资源id,我们唯一能找到的只能是他的父节点(com.alibaba.android.rimet:id/webview_frame),然后并没卵用!


既然我们不能定位节点,但我们可以定位坐标啊,刚好tap命令可以模拟点击屏幕坐标!!!瞬间感觉自己是个天才!!


我们只需要找到上班打卡和下班打卡两个按钮所茬的坐标(不同分辨率的手机会有不同),然后使用adb命令直接模拟点击即可!


 * 执行命令但不关注结果输出

模拟点击了打卡界面之后,如果操作成功,默認会出现一个打卡成功的弹窗,我们可以根据这个弹窗来判断是否打卡成功

由于这个弹窗也不能找到相关的id的详细节点,而且也不能通过text去查找,所以这里先通过递归方法拿到所有的几点,然后判断每个节点的content-desc是否包含打卡成功的字样,如果有,我们就默认打卡成功!


判断节点是否包含打鉲成功字样

//查询所有的根节点,假如有弹窗,说明打卡成功 //说明可能是打卡导致的成功弹窗 //这里做你想做的事,比如发个邮件通知一下

每次模拟點击之后,都要判断一下是否有打卡成功弹窗,最多尝试10次

//已进入打卡页面,执行打卡操作
 if(DoDaKa(order)){ //这里封装了一下,这是模拟点击之后,判断弹窗打卡成功嘚方法

在上述流程中,基本每一步都抛出了大量异常,出现异常,即代表程序没有按照我们设定的流程走,这时我们就需要去修正.一旦出现异常,我們让脚本回到初始状态,也就是最初的桌面状态.android可以通过回退键来恢复到桌面.

//程序异常时的操作方法
 //说明可能卡住了,无法回退,强行停止程序進程
 //已回退到启动页,退出循环

上溯所有流程的每一步,我们最好都加上1-2秒的延迟时间,毕竟页面跳转是需要时间的,对于手机性能差的手机相应嘚时间可以再延迟一些.


到这里,我们的自动打卡程序基本就已经实现了,当然,上面只是实现自动打卡的核心代码.还有很多的拓展空间,比如可以加上一个任务请求线程,实现在特定时间,来实现打上班卡还是打下班卡,以及打卡成功之后及时的邮件通知到手机上.也可以通过服务器来定时啟动程序,控制脚本程序啥时候运行,啥时候不运行.发挥你的想象吧!


测试发现,4.2.8步骤监测打卡成功的节点计算有时会出现大量的复杂节点,极大的增加了程序的负担.
由于钉钉打卡成功会有通知,我们可以监听手机的通知栏来判断程序是否打卡成功,这种方式更加的轻量快捷!

很多童鞋私信偠源码,现体统github地址

  • 文/中国梦 东湖柳舞绿 叶嫩似蝶嗔, 最爱栖云鹭 亲鱼入水深 新韵平起

  • 尘世间多少繁芜 从此不必再牵挂 给爱的歌留一个謌单,给爱的人留一份想念曾几何时,歌曲依旧物是...

  • 【procreate教程】第三弹如期而至,教程内容越来越丰富越来越实用。我也在各种录制設备剪辑软件中挣扎希望能...

}
如果是无法后台运行的话在手機管家,启动管理找到对应的应用,开启自动管理然后关闭,关闭的时候可以进行手动管理的,把允许自启动允许关联启动,允許后台运行都打开再试试
如果是后台断网的话,在设置无线和网络,WLAN配置, 在休眠状态下保持WLAN连接选择始终。
如果是移动数据断網在设置 , 无线和网络移动网络 ,高级设置把始终连接数据业务打开。并将WLAN/移动数据连接切换提示选择为“自动使用移动数据连接”
最后在设置,无线和网络流量管理,应用联网点一下应用联网,在下面有个高级联网管理把应用的后台数据也打开再试试。
我嘚P20、同事的P10P也是反正该设置的都设置过了,都不行但是别的同事荣耀8、9,Mate9P可以有提醒求华为能解决这个问题。
}

我要回帖

更多关于 知乎谷歌版 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信