Android 非WebView 调用 js代码

1、第三方包 下载地址: https://github.com/mozilla/rhino

得到 rhino-1.7.12

2、引入到项目中

3、工具类

/**
 *
 * @param js js源码 "function test(a,b){return a+b;}"
 * @param functionName 方法名
 * @param functionParams 参数
 * @return
 */
public static String callFunction(String js,String functionName,Object[] functionParams){
    if(TextUtils.isEmpty(js)) return "";
    js = js.replace("\\r\\n",""); //去掉转义符
    Context rhino= Context.enter();
    rhino.setOptimizationLevel(-1);
    try {
        Scriptable scope=rhino.initStandardObjects();
        rhino.evaluateString(scope,js, null, 0,null);
        Function function = (Function) scope.get(functionName,scope);
        Object result = function.call(rhino,scope,scope,functionParams);
        if(result instanceof String){
            return (String) result;
        }else if(result instanceof NativeJavaObject){
            return (String) ((NativeJavaObject) result).getDefaultValue(String.class);
        }else if(result instanceof NativeObject){
            return (String) ((NativeObject)result).getDefaultValue(String.class);
        }
        return result.toString();
    }catch (Exception e){

    }

    Context.exit();
    return "";

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值