news 2026/8/15 1:37:33

自动化脚本中如何启动脚本,暂停脚本和停止脚本

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自动化脚本中如何启动脚本,暂停脚本和停止脚本

在自动化脚本的开发和运维过程中,脚本的生命周期管理是至关重要的基础能力。无论是调试阶段的反复验证,还是生产环境中的任务调度,开发者都需要对脚本的启动、暂停和停止拥有精确的控制力。本文将系统性地梳理这三种操作的具体实现方式、适用场景以及注意事项。

一、启动脚本:从callScript到runTask

启动脚本是自动化任务的第一步。冰狐智能辅助提供了多个层次的脚本启动方式,开发者可以根据实际需求选择最适合的方案。

1. callScript——同步调用

callScript是冰狐平台最基础的脚本调用函数,用于同步执行移动端脚本中的main函数,其返回值为脚本的返回值。该函数的特点是直接在当前线程中执行,因此会阻塞当前线程直到被调用脚本执行完毕。

参数说明:

  • scriptName(必填):移动端脚本名,支持在线脚本和本地脚本

  • params...(选填):任意个参数,直接透传给被调用的脚本

调用示例:

// 调用冰狐在线脚本 callScript('test'); // 调用手机存储中的本地脚本(绝对路径) callScript('/sdcard/test.js'); // 调用手机存储中的本地脚本(相对路径) callScript('test.js'); // 调用打包到APK中的资源脚本 callScript('asset:test.js', 12, 'abc');

被调用的脚本需要按照以下格式编写:

function main(id, name) { console.log('id:' + id + ' name:' + name); return name + id; }

适用场景:callScript适合在非UI线程中调用其他脚本,例如在后台服务脚本中串联多个子任务。

2. runTask——异步执行

callScript不同,runTask用于在UI代码中执行移动端脚本,调用时会另外开启一个独立线程来执行脚本。由于UI线程不能被耗时操作阻塞,凡是涉及UI交互的脚本调用都应使用runTask

参数说明:callScript完全相同。

调用示例:

// 在UI代码中异步执行在线脚本 runTask('test'); // 在UI代码中异步执行本地脚本并传递参数 runTask('asset:test.js', 12, 'abc');

适用场景:凡是涉及自定义UI的脚本,如带有界面的自动化工具、需要实时反馈的用户交互场景等,都应使用runTask

3. setDefaultScript——设置默认脚本

除了动态调用,冰狐还提供了setDefaultScript函数,用于设置设备的默认脚本。调用该函数后设置永久有效,除非重新设置。如果需要取消默认脚本,可以传入空字符串。

// 设置绝对路径脚本 setDefaultScript('/sdcard/xx.js'); // 设置在线默认脚本 setDefaultScript('xx');

4. Open API远程启动

对于需要从后端服务远程控制设备执行脚本的场景,冰狐提供了完整的Open API支持。通过/api/device/start接口可以远程启动设备,通过/api/script/exe接口可以远程执行设备端脚本。其中forceRun参数可以控制是否强制停止当前运行的脚本后再启动新脚本。

二、暂停脚本:pause与resume的配合使用

脚本暂停是一个非常有用的功能,尤其在调试阶段或者需要人工介入的场景中。

pause——暂停执行

pause函数用于暂停执行当前脚本。调用后,脚本会在该位置暂停,等待恢复信号。

参数说明:

  • showResumeButton(选填,默认false):是否显示带有“继续运行”按钮的悬浮框

调用示例:

// 暂停脚本,不显示悬浮按钮 pause(); // 暂停脚本,并显示带有继续按钮的悬浮框 pause(true);

工作机制:showResumeButtontrue时,调用pause后会自动在手机上弹出一个暂停按钮,用户手动点击该按钮后程序继续运行。若设置了tag参数,则出现tag后立即恢复执行。

resume——恢复执行

resume函数用于恢复被pause暂停的脚本执行。

调用示例:

// 恢复暂停的脚本继续执行 resume();

典型应用场景:

  1. 调试场景:在关键节点暂停脚本,检查当前变量状态、UI节点信息等

  2. 人工介入场景:在需要人工输入验证码、处理弹窗等环节暂停脚本

  3. 条件等待场景:暂停后等待特定条件满足再继续执行

三、停止脚本:stop的多种用法

停止脚本是脚本生命周期管理的终点,冰狐提供了多种停止方式,覆盖不同场景。

1. stop——停止当前脚本

stop函数用于停止执行当前脚本。

参数说明:

  • refresh(选填,默认为true):停止后是否刷新界面

调用示例:

// 停止脚本,并刷新界面 stop(); // 停止脚本,不刷新界面 stop(false);

2. 浏览器环境中的停止

在WebView控件加载的网页中,可以通过浏览器JavaScript调用冰狐的停止功能。系统内置了aznfzObject对象,其中包含stop方法:

// 在浏览器js中停止冰狐脚本 aznfzObject.stop();

同样,在浏览器js中也可以通过aznfzObject.exeScript执行冰狐脚本。

3. Open API远程停止

通过Open API的/api/device/stop接口可以远程停止设备上正在运行的脚本。这在批量设备管理场景中尤为重要——当某个设备出现异常或需要切换任务时,可以通过后端服务统一下发停止指令。

四、综合应用与实践建议

脚本生命周期管理的基本模式

一个完整的脚本生命周期通常遵循以下流程:

  1. 启动阶段:使用callScriptrunTask启动主脚本

  2. 运行阶段:脚本执行业务逻辑

  3. 暂停/恢复阶段(可选):在需要人工介入或条件等待时使用pause/resume

  4. 停止阶段:任务完成后调用stop正常退出,或异常时强制停止

关键注意事项

1. callScript与runTask的选择
callScript不会创建独立线程,直接在当前线程中执行,因此不能在UI代码中使用。UI中的脚本调用必须使用runTask

2. 调试模式与发布模式
冰狐智能辅助分为调试模式和发布模式:调试模式只能运行调试脚本,发布模式只能运行发布脚本。在开发调试时需要确保模式匹配。

3. 权限与运行环境
确保冰狐智能辅助已开启无障碍、后台运行、悬浮窗等全部权限,并将冰狐APP锁定以避免被系统后台清理,否则可能导致脚本执行中断。

4. 强制停止与forceRun
通过Open API启动脚本时,forceRun参数默认为true,即如果设备端已有脚本在运行,会强制停止后再运行新脚本。开发者应根据业务需求合理设置该参数。

结语

冰狐智能辅助为自动化脚本的生命周期管理提供了一套完整且高效的API体系。从启动时的callScriptrunTasksetDefaultScript,到暂停时的pause与恢复时的resume,再到停止时的stop及其在不同环境中的变体,每个环节都有明确的函数和清晰的参数控制。熟练掌握这些API的使用方法,是编写稳定、可控的自动化脚本的基础,也是提升开发效率和运维质量的关键所在。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/15 1:35:53

基于向量检索与动态上下文构建的AI编程助手全局代码理解方案

1. 项目概述:从“盲人摸象”到“全局洞察”如果你用过GitHub Copilot、Cursor或者通义灵码这类AI编程助手,大概率有过这样的体验:你正在修改一个函数,希望助手能帮你补全,或者重构一段逻辑。它给出的代码片段单看语法没…

作者头像 李华
网站建设 2026/8/15 1:34:02

数学建模期末高效复习:从流程、模型库到题型的三维框架构建

1. 项目概述:期末复习中的“多选题”策略又到了期末季,对于东南大学数学建模课程的同学来说,这门课既充满挑战又极具价值。它不像纯数学课那样有标准答案,也不像编程课那样有明确的语法规则,它更像是一场综合能力的实战…

作者头像 李华
网站建设 2026/8/15 1:26:09

一键多站发布怎么做?auto-feed 把PT站自动转载时间压缩到5分钟

一键多站发布怎么做?auto-feed 把PT站自动转载时间压缩到5分钟 【免费下载链接】auto_feed_js PT站一键转载脚本 项目地址: https://gitcode.com/gh_mirrors/au/auto_feed_js 深夜把一部片子从 A 站搬到 B 站,简介要重写、图片要转存、表单要一个…

作者头像 李华
网站建设 2026/8/15 1:25:39

MODBUS协议读写PLC V存储区:地址计算、字节序处理与实战代码

在实际工业自动化、物联网数据采集和上位机开发中,MODBUS 协议因其简单、开放、通用,成为连接 PLC、传感器、仪表与上位机软件最常用的通信标准之一。很多工程师在掌握了 MODBUS 读写线圈、寄存器的基础操作后,会遇到一个更贴近实际项目的需求…

作者头像 李华