js中如何导入或调用其它js脚本

在编写冰狐智能辅助自动化脚本过程中,为了实现模块化编程,我们需要把不同的功能放在不同js脚本中,一个主脚本调用若干功能模块脚本。我们如何实现导入或者调用其他js文件呢?冰狐智能辅助提供了三种方法:

一、import导入脚本

在js文件中静态导入其它脚本,可以理解为直接把js添加过来,【import 脚本名表达式】,支持在线js和本地js文件,包括apk的资源文件:使用asset:前缀,可以在打包apk时添加js文件;手机本地js文件。注意:被导入的js中不需要用export。
// 在线js
import 'test.js';

// apk资源中的js
//import 'asset:test.js';

// 手机本地存储中的js
//import '/sdcard/test.js';

function main() {
console.log('main');
// 调用test.js中的函数fun1
fun1();
}

// test.js文件
function main() {
console.log('main');
}

function fun1() {
console.log('func1');
}

二、callScript动态调用脚本

callScript核心功能是在js中动态调用其它js脚本,执行脚本中的main函数(注意:直接执行main函数),其返回值为脚本的返回值。需要注意的是该函数不会创建独立的线程,直接在当前线程中执行,如果直接在ui代码中使用有可能会导致ui无响应,在ui中建议使用runTask。与import一样,也支持在线js和本地js文件,包括apk的资源文件:使用asset:前缀,可以在打包apk时添加js文件;手机本地js文件。
function main() {
// 在线js
// 直接执行test.js的main函数
callScript('test.js');

// apk资源中的js
// callScript('asset:test.js');

// 手机本地存储中的js
// callScript('/sdcard/test.js')
}

// test.js文件
function main() {
console.log('test main');
}

三、runTask执行任务

runTask一般用在ui代码中执行其它js脚本,执行时会另外开启一个线程执行脚本,多用于自定义ui任务。若在非ui代码中调用脚本,建议使用callScript。runTask和callScript最大的区别就是,runTask会开启新线程执行,而callScript在原线程中执行。支持在线js和本地js文件,包括apk的资源文件:使用asset:前缀,可以在打包apk时添加js文件;手机本地js文件。
// ...省略若干ui代码
function main() {
    // 创建并显示ui
    setupUI();

    // 设置文本
    ui('show').setText('xxx');

    ui('select').on('selected', onSpinnerSelected);
}

function onClick(event) {
    console.log('click button');

    // 注意耗时任务不能在ui脚本中执行,具体的耗时任务放在另外一个脚本中,使用runTask函数来调用
    runTask('test');
}


// test.js文件
function main() {
console.log('test main');
}

商务合作QQ:2231485359
Copyright © 2021-2023 杭州汇骋科技有限公司. All rights reserved. 浙ICP备15043866号-4 《冰狐智能辅助服务协议》