EasyClick脚本开发教程(4)启动应用的稳妥方法

前言

启动应用和切换应用,是每个脚本必须用到的方法。
EasyClick里,启动应用的方法是utils.openApp(packageName)

在生产环境中,你可以直接通过这句代码来启动应用。
但是,在设备数量多的情况下,这句代码会发生问题。
那就是有些应用,并不能通过这种方式来直接启动。
所以需要做一些兼容性适配,让启动更稳妥,成功率更高。

所需方法

utils.isAppExist(packageName):App是否已经安装
utils.openApp():通过包名打开APP
getRunningPkg():取得当前运行的App包名
utils.getAppVersionName(packageName):取得已安装的程序的版本字符串标示(版本号)

text():组件文本选择器
has():通过选择器判断元素是否存在
visible():组件是否可视。组件筛选方法
getOneNodeInfo():通过选择器获取第一个节点对象
click():点击节点,节点区域随机点击

实现过程

温馨提示:此处内容需要后才能查看!

为了方便调用,飞云将启动应用的方法,封装成一个函数。

let packageName = 'com.ss.android.ugc.aweme';
launch(packageName);

/**
 @description 通过包名启动应用。如果该包名对应的应用不存在,则返回false;否则返回true。
 @version     20201125
 @author      飞云<283054503@qq.com>
 @param       packageName {string} :应用包名
 @param       delay {number} :启动后等待时长,单位毫秒。默认5000
 @param       startNum {number} :重试次数。默认3
 @return      {boolean}:返回是否成功
 */
function launch(packageName, delay, startNum) {
    let result = false;
    if (!delay) {
        delay = 5000;
    }
    if (!startNum) {
        startNum = 3;
    }
    if (utils.isAppExist(packageName)) {
        if (getRunningPkg() === packageName) {
            logd('应用已经在前台');
            result = true;
        } else {
            logd('启动应用...');

            let selectors = text('允许');
            let num = 0;
            while (num < startNum) {
                if (getRunningPkg() === packageName) {
                    logi('启动成功');
                    result = true;
                    break;
                } else if (has(selectors)) {
                    let node = selectors.getOneNodeInfo(1000);
                    if (node) {
                        node.click()
                    }
                } else {
                    utils.openApp(packageName);
                    sleep(delay);
                    num++;
                }
            }
        }
    } else {
        loge('应用未安装');
    }
    if (result) {
        logd('应用版本号:' + utils.getAppVersionName(packageName));
    }
    return result;
};

来看看运行日志:

[2020-11-25 21:27:43.387]【远程设备】准备运行工程...
[2020-11-25 21:27:43.390]【远程设备】开始启动...
[2020-11-25 21:27:43.474]【远程设备】开始执行,请稍等
[2020-11-25 21:27:43.773]【远程设备】执行 main class: com.js.main
[2020-11-25 21:27:43.773]【远程设备】执行class: com.js.main
[2020-11-25 21:27:43.777]【远程设备】开始执行脚本...
[2020-11-25 21:27:43.782]【远程设备】启动应用...
[2020-11-25 21:27:49.255]【远程设备】启动成功
[2020-11-25 21:27:49.260]【远程设备】应用版本号:13.6.0
[2020-11-25 21:27:49.631]【远程设备】运行结束

EasyClick免费云控

全动云是淘美科技旗下2021年最新的免费云控脚本管理系统。提供设备分组、设备管理、脚本分组、脚本管理、任务管理、素材管理等强大功能。支持用户上传自定义EasyClick脚本。
全动云大数据智能营销管理系统

相关链接

EasyClick开发文档

EasyClick脚本开发教程(1)IntelliJ IDEA Ultimate的安装方法
EasyClick脚本开发教程(2)安装开发工具并创建项目
EasyClick脚本开发教程(3)连接设备与屏幕映射

EasyClick实现抖音直播间刷屏喊话,循环发送随机话术
EasyClick实现抖音发送指定语音,发送好友私信,引流脚本必备技术

EasyClick交流群

QQ群号:737066890

EasyClick技术交流

1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » EasyClick脚本开发教程(4)启动应用的稳妥方法

企业级大数据智能营销管理系统

了解详情