diff --git a/README.md b/README.md index c726dfa..7746a71 100644 --- a/README.md +++ b/README.md @@ -16,17 +16,17 @@ https://www.apifox.cn/apidoc/project-1035094/doc-840833 ## 兼容版本(重要) -经过测试验证的版本:企业微信 4.0.2 至 4.0.12 (8月11日上架最新版本)、企业微信政务版 +经过测试验证的版本:企业微信 4.0.2 至 4.0.16 (9月13日上架)、企业微信政务版 ## 快速使用 [快速入门文档](https://www.apifox.cn/apidoc/project-1035094/doc-850007) -1. 准备一台无人使用的可联网安卓手机(本APP兼容99%安卓机型) +1. 准备一台无人使用的可联网安卓手机(本APP兼容99%安卓机型 系统要求>=Android7.0) 2. 手机登录企业微信(账号需要提前实名认证,不然很多功能无法正常使用) 3. 建议提前给该企业微信账号开通"工作台"-"客户群"权限(如无需外部群创建和管理可不开启) -4. 自助申请一个[机器人链接号(点击这里)](https://www.apifox.cn/apidoc/project-1035094/api-21488840),您也可以加入QQ群向管理员咨询如何操作。 -5. 在这台手机上安装[WorkTool APP安装包(点击下载)](https://cdn.asrtts.cn/uploads/worktool/apk/worktool-2.2.3.apk) +4. 自助申请一个[机器人链接号(点击这里)](https://wt.asrtts.cn/regist.html),您也可以加入QQ群向管理员咨询如何操作。 +5. 在这台手机上安装[WorkTool APP安装包(点击下载)](https://cdn.asrtts.cn/uploads/worktool/apk/worktool-2.2.5.apk) 6. 打开WorkTool APP,按照APP提示保存链接号,开启主功能,并打开到企业微信界面,不要关闭屏幕即可。 如果您想使用自己开发的QA回调接口接收机器人收到的所有消息并定制回答,请参考[第三方QA回调接口规范(点击这里)](https://www.apifox.cn/apidoc/project-1035094/doc-861677)开发接口,并在[机器人第三方QA配置(点击这里)](https://www.apifox.cn/apidoc/project-1035094/api-22587884)提交您的机器人id和回调接口地址 @@ -58,6 +58,8 @@ Apache License, Version 2.0 # 版本更新 +tag 2.2.5 2022-09-15 主动加好友可改附言;移除[自动回复]前缀;群内回复@提醒;搜索更加精准;学校类企业兼容 + tag 2.2.3 2022-08-26 兼容主动添加好友;文本匹配优化;其他已知问题优化 tag 2.2.1 2022-08-25 多控件类型兼容;兼容多版本系统;其他已知问题修复 diff --git a/app/build.gradle b/app/build.gradle index 195fdbb..e509df5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "org.yameida.worktool" minSdkVersion 24 targetSdkVersion 30 - versionCode 225 - versionName "2.2.5" + versionCode 226 + versionName "2.2.6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/libs/SaaS_TalkingDataSDK_Android_V5.0.8.jar b/app/libs/SaaS_TalkingDataSDK_Android_V5.0.8.jar new file mode 100644 index 0000000..37d6897 Binary files /dev/null and b/app/libs/SaaS_TalkingDataSDK_Android_V5.0.8.jar differ diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index ffe1813..f406dfd 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -45,3 +45,8 @@ #bean -dontwarn org.yameida.worktool.model.** -keep class org.yameida.worktool.model.**{*;} + +#talkingdata +-dontwarn com.tendcloud.tenddata.** +-keep class com.tendcloud.** {*;} +-keep public class com.tendcloud.** { public protected *;} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ed17bb0..e45dca6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,6 +60,8 @@ android:resource="@xml/accessibility_service_config" /> + + \ No newline at end of file diff --git a/app/src/main/java/org/yameida/worktool/MyApplication.kt b/app/src/main/java/org/yameida/worktool/MyApplication.kt index 729a63d..1ffcb9b 100644 --- a/app/src/main/java/org/yameida/worktool/MyApplication.kt +++ b/app/src/main/java/org/yameida/worktool/MyApplication.kt @@ -3,6 +3,7 @@ package org.yameida.worktool import android.app.Application import com.blankj.utilcode.util.SPUtils import com.blankj.utilcode.util.Utils +import com.tendcloud.tenddata.TalkingDataSDK import com.umeng.commonsdk.UMConfigure import org.yameida.worktool.config.GlobalException import update.UpdateAppUtils @@ -19,6 +20,7 @@ class MyApplication : Application() { if (SPUtils.getInstance().getString("uminit", "1") == "1") { UMConfigure.init(this, "6284a3a3d024421570f97c3c", "main_channel", UMConfigure.DEVICE_TYPE_PHONE, "") } + TalkingDataSDK.init(this, "80E9C84E39904DAFB28562910FF7C86C", "worktool_master", SPUtils.getInstance().getString(Constant.LISTEN_CHANNEL_ID)); //初始化自动更新 UpdateAppUtils.init(this) //设置全局异常捕获重启 diff --git a/app/src/main/java/org/yameida/worktool/utils/WeworkRoomUtil.kt b/app/src/main/java/org/yameida/worktool/utils/WeworkRoomUtil.kt index 9f9e32e..132e05d 100644 --- a/app/src/main/java/org/yameida/worktool/utils/WeworkRoomUtil.kt +++ b/app/src/main/java/org/yameida/worktool/utils/WeworkRoomUtil.kt @@ -104,10 +104,10 @@ object WeworkRoomUtil { sleep(Constant.CHANGE_PAGE_INTERVAL) //消息页搜索结果列表 val selectListView = findOneByClazz(getRoot(), Views.ListView) - val searchResult = AccessibilityUtil.findOneByText( + val regex = "^$trimTitle(-.*)?(…)?(\\(.*?\\))?" + if (needTrim) "" else "$" + val searchResult = AccessibilityUtil.findOneByTextRegex( selectListView, - trimTitle, - exact = !needTrim, + regex, timeout = 2000, root = false )