现在app的升级已是常态,应用市场或app里三天两头提示更新。安全更新修复漏洞,功能更新增加功能,用户除非觉得现在app版本功能够用好用,安全问题也不用考虑,新版的功能也没有吸引力,那么是可以不升级的,一般情况下大多数人还是倾向于使用app的新版本的。我们的hamibot脚本如果不适配新的app版本,那么不仅对新用户的吸引力不大(他得卸载已安装的app的新版本,还得去找到下载app的旧版本,才能用我们hamibot脚本),对眼馋app新版的老用户也会产生一些离心力了。
对hamibot脚本任务来说,如果app新版的功能逻辑差异较大,那么可能就得为新版app重新开发脚本了,app新版的功能逻辑差异不大,其实还是可以以不大的工作量来适配的,是怎么操作呢?
是这样的,我们一般操作app的界面元素用UiSelector选择,运气好的话,id在新旧版本是一样的,我们只要检查脚本操作的所有元素即可完成适配新版本,如果不一样呢?如果能一一对应,那么也可以比较轻松的完成适配,不过就得借助正则表达式这个利器了。UiSelector里有一个idMatches(reg),我们把新旧元素id都写在reg串里面就成了。
例如 "/^com.tencent.mm:id/(lyt|dy_)$/"
这个reg串就可以匹配这两个元素"com.tencent.mm:id/lyt"
和"com.tencent.mm:id/dy_"
的id,这样处理后,脚本对新旧app版本都会有效的。