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

loadDex("defaultplugin.apk");

然后在使用importClass或者importPackage方法进行引入java类
使用new方法生成插件对象实例即可调用

运行

执行菜单栏 ‘EasyClick 开发工具 - 运行工程’ 即可,前提是要连接到手机

打包

执行菜单栏 ‘EasyClick 开发工具 - 打包工程’ 即可,打包结果请看EasyClick 运行日志的输出

java代码翻译为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); }