Java-JS混合开发
# 说明
混合开发是把java和js放在一起编写,js调用java的方法
编译后java代码和jar包会变成一个defaultplugin.apk文件作为插件使用
# 新建项目
使用IDEA创建项目选择'EasyClick Java-JS混合项目'
点击下一步并完成,会自动生成对应的java类和配置信息
# 目录结构
- src/js/main.js 这个文件是js调用插件相关方法的测试入口
- src/com/ 这个文件夹下面存放的的java源码,PluginClz 类是默认生成的插件入口类
- libs/jarlibs文件夹用于存放三方引用jar包,会被合并到插件中
- libs/solibs 存放so封装的文件,会被编译到插件的 lib 文件夹中
- libs/resources 存放资源的文件,会被编译到插件的 resources 文件夹中
- libs/jslibs 存放JS类库文件,不会编译到插件中,仅用来进行测试和调用
如果你有jni的调用,请将so文件放到libs/solibs中
# 默认java类
PluginClz是默认生成的java类
test 方法是默认生成的默认方法
# main.js 使用Java
java编译后是插件形式,插件名称是defaultplugin.apk,请在脚本运行的时候调用。
详见[全局模块-载入dex或者apk](doc:vLFHEMYv)
```js
loadDex("defaultplugin.apk");
```
然后在使用importClass或者importPackage方法进行引入java类
使用new方法生成插件对象实例即可调用
# 运行
执行菜单栏 'EasyClick 开发工具 - 运行工程' 即可,前提是要连接到手机
# 打包
执行菜单栏 'EasyClick 开发工具 - 打包工程' 即可,打包结果请看EasyClick 运行日志的输出
# java代码翻译为js代码
```js
// 文件操作 Demo By 飞云
var path = '/sdcard/2.png'
importClass(java.io.File); //引用依赖的类
var file = new File(path); //获取文件对象
var fileName = file.getName(); //获取文件名
var index = fileName.lastIndexOf(".");
var suffix = fileName.substring(index + 1, fileName.length());
logd('文件格式:' + suffix);
if (file.exists()) {
var isDeleted = file.delete();
logd('删除结果:' + isDeleted);
}
```