安卓运行js代码-完美
前言
安卓里面做边缘计算的功能,需要动态编辑js代码执行
巨坑
java里面有ScriptEngineManager类,可以执行js
但在安卓里面没有这个类,javax下面的都不能执行
网上说的安卓里面用ScriptEngineManager的都是坑!
解决方法
使用Rhino
可以完美执行js代码
1、下载Rhino包
2、安卓添加依赖
implementation files('libs\\rhino-1.7.14.jar')
也可以右键jar包,选择
3、编写代码
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Function;
import org.mozilla.javascript.Scriptable;public class JsRun
{private static Object _lock = new Object();private static Context _rhino = null;private static Scriptable _scope = null;private static void init(){if( _rhino==null ){synchronized (_lock){if( _rhino==null ){_rhino = Context.enter();_rhino.setOptimizationLevel(-1);_scope = _rhino.initStandardObjects();}}}/* 这里是测试执行代码String js = "function aa(){return 'sdfsdfsdf';}";initScript(js);js = "function bb(){return '11111';}";initScript(js);Object obj = callFunc("aa");System.out.println(obj);obj = callFunc("bb");System.out.println(obj);*/}public static boolean initScript(String js){init();try {_rhino.evaluateString(_scope, js, null, 1, null);return true;}catch (Exception e) {e.printStackTrace();}return false;}public static Object callFunc(String functionName, Object... functionParams){try{Function function = (Function) _scope.get(functionName, _scope);if( function != null )return function.call(_rhino, _scope, _scope, functionParams);}catch (Exception e) {e.printStackTrace();}return null;}
}
安卓运行js代码-完美相关推荐
- 运行JS代码报错:Uncaught TypeError: Cannot read property‘style‘ of undefined
运行JS代码报错:Uncaught TypeError: Cannot read property'style' of undefined 这个报错的原因通常是没有获取指定的标签: 这个报错的原因通常 ...
- Nodejs 中运行 JS 代码
Nodejs 中运行 JS 代码 接下来,演示一下 Nodejs 中如何运行 JS 代码. 以前 JS 只能运行在浏览器中,Node.js 出现之后,不管是服务器上,还是我们自己的的笔记本上,只要安装 ...
- 运用Rhino,在Android上运行js代码
简单记录如何运用Rhino 在这里不过多赘述rhino,百度以及官网到处都是介绍,本文只提供我自己封装的工具类,用于处理运行js代码(字符串形式),返回js对象或者String.支持es5语法,支持部 ...
- 潇洒郎:Python 使用pyexejs运行js代码
潇洒郎:Python 使用pyexejs运行js代码 安装 pip install pyexecjs js代码: import execjsjs_code='''function x(a, b){re ...
- 【笔记】Pycharm配置Node.js运行js代码
最近在学习关于Js逆向的知识,需要在PyCharm中运行Js程序,记录一下配置过程. 安装Node.js Node.js中文网 选择自己电脑对应的安装包下载暗转即可 安装好软件后,配置node.js环 ...
- python通过execjs运行js代码
python通过execjs运行js代码 pip install PyExecJS 使用方法 import execjsctx = execjs.compile(""" ...
- Android中使用WebView加载本地html并支持运行JS代码和支持缩放
场景 Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/art ...
- (5)通过Node.js 运行JS代码
一.使用快捷键ctrl+`键打开终端,也可以手动选择菜单栏中的终端,然后编写一个hello.js文件 二.输入命令node .\node_demo\hello.js 三.得到JS文件的内容 如果没有显 ...
- pycharm安装nodejs插件运行js代码
pcharm 安装node.js 1.下载文件 https://nodejs.org/en/download/ 2.安装文件 2.1 : cmd 进入安装的目录下面 node -v 3.电脑环境变量添 ...
最新文章
- 【组队学习】【34期】百度飞桨AI达人创造营
- LeetCode(30):与所有单词相关联的字串
- Nginx技术研究系列7-Azure环境中Nginx高可用性和部署架构设计
- 你确定你会使用git commit?
- lstm原文_LRCN: LSTM与CNN相结合模型
- day08面向对象+
- [转载] 百科全说——王晓斋:感冒时您找准医生了吗?(10-10-11)
- 如何在 Mac 上设置自定义锁屏信息?
- 阿里云云计算 36 PolarDB MySQL的管理步骤
- VS编译器常见的问题
- PHP实现生成二维码的示例代码
- nodejs操作Excel
- python uwsgi_python,uwsgi_安装uwsgi时报错,python,uwsgi - phpStudy
- HTML实现文件上传和HTML实现打开文件目录
- 软件测试好学吗?发展前景如何?
- matlab 读取脉冲数,已知一段波形,求脉冲个数,用代码实现
- 【数据挖掘】频繁模式挖掘及Python实现
- 下拉框优化威zx78_下拉框优化应到千捷网络下拉系统
- 永磁同步电机参数自整定 包括电机极对数、电阻、电感、磁链、反电势常数、编码器零位等
- postgresql创建数据库
热门文章
- 2021最新CSDN积分获取攻略(如何快速获取CSDN积分)
- 中视频计划过不了审怎么办?务实社海哥三招教你做好中视频计划,提前通过原创
- 古代中国使用计算机工具叫什么,古代四大计时工具是什么
- js 所有的网络请求方式
- 【微信小程序】-miniprogram init [Error: ENOENT: no such file or directory]
- 没有996的当代年轻人,配过怎样的生活 1
- 算法基础--《我的第一本算法书》--(算法学习一)
- 在html页面写一个富文本框
- KONAMI公司:魂斗罗的诞生
- 干脆大大方方的以前高