j2v8 js调用java_GitHub - tangbei/j2v8_android: j2v8在android上的使用demo,三种js脚本读取方式,包含自己添加的工具类,以及j2v8一些方法的演...

j2v8的android测试demo。

本工程只是 j2v8 测试demo, 包含了j2v8的所有使用方法。可以下载 工程体验。

j2v8使用方式:

在build.gradle中添加依赖:

dependencies {

compile 'com.eclipsesource.j2v8:j2v8:5.0.103@aar'

}

也可以在app的libs中引入j2v8.aar文件。点击获取maven地址

同时在build.gradle中引入:

repositories {

flatDir {

dirs 'libs'

}

}

后台java使用方式:

maven依赖方式:

com.eclipsesource.j2v8

j2v8

5.0.103

java后台使用方式,和android类似,只是其中的j2v8方法还有使用上的区别。

工程demo使用介绍:

本工程已经包含了 所有j2v8使用到的方法,和使用到的工具类。以及包含了三种读取 js 文件的方式,方便在任何场景下 java 和 js的交互。

一、本地 js文件/js字符串 读取方式

在主工程app的assets文件夹中添加js脚本文件,如果没有assets文件夹,则新建一个。

20190918135108.jpg

获取js脚本文件的方式:

final InputStream INPUTSTREAM = this.activity.getClass().getResourceAsStream("/assets/j2v8/j2v8test.js");//获取js脚本的输入流

二、后台数据库js的string字符串 读取方式

在需要调取js的类中 implements J2V8Interface这个接口,同时实现 getJs()方法。

/**

* js脚本 字符串

* @return

*/

@Override

public String getJs() {

/* String s = "function j2v8String(x,y){\n" +

" var name3 = x.concat(y);\n" +

" return name3;\n" +

"}";*/

return "";

}

此读取方式,更加灵活,可以直接把js存到后台数据库,每次调用的时候 拿到后台的js字符串即可。

同时调用J2V8Helper.class暴露的帮助实现方法 即可,demo写的很详细,一些方法还是比较全面的,同时你可以自己更改代码,获取自己想要的实现方式,并放在自己的工程中。 具体可下载工程查看使用方式。 /n

注意事项:存的是js脚本字符串、或者js脚本字符串方法。

三、服务器js文件 读取方式

js文件既可以本地读取,那么 服务器链接 读取肯定也是可以的。

/**

* 获取oss上的js文件,并转换成String返回

* 如果是获取网络地址,则使用 J2V8Single.class 处理

* @param _url oss上的js地址:https://github.com/tangbei/j2v8_android/blob/master/j2v8test.js

* @return

*/

public static String getOssJsUrl(String _url){

String jsPath ="";

try {

// 构造URL

URL url = new URL(_url);

// 打开连接

URLConnection con = url.openConnection();

// 设置请求超时为5s

con.setConnectTimeout(5 * 1000);

// 输入流

InputStream is = con.getInputStream();

jsPath = supplyAsync(is);

is.close();

} catch (Exception e) {

e.printStackTrace();

}

return jsPath;

}

但是调取方式和第一种不同,是在 J2V8Single.class单例类中使用,目的是只网络读取一遍js脚本文件。

读取方式优劣分析

三种方式在读取上第二种是最快的,直接拿到的是js脚本字符串。

本地读取和本地读取字符串也是最快、但是不可动态配置js脚本,不灵活。

服务器读取虽然动态可配置,但是读取速度上不占优,使用单例模式加载网络文件,目的是使用时只读取一遍,提升代码可用度。

综上,还是推荐数据库存储js字符串 读取、即可动态配置、也不失灵活、读取便捷、扩展性强、适用场景更多。

注意事项

本demo只是粗略概括了j2v8的各种使用方式,为初次使用 jav8 的人搭个桥。

使用j2v8时一定要及时释放,否则会很耗性能和内存。

如果java后台使用j2v8 也可以使用此demo,只是依赖替换一下,具体使用大同小异。

本demo,可以随意更改,并用到自己的工程中,希望能帮到你们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值