亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

使用Rhino讓java執行javascript的方法實例

2019-11-26 15:51:54
字體:
來源:轉載
供稿:網友

下載Rhino https://developer.mozilla.org/en-US/docs/Rhino

把js.jar拷貝到項目工程

實現從Java中執行js中的函數、從js中調用Java中的方法,代碼:

復制代碼 代碼如下:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView text1 = (TextView) findViewById(android.R.id.text1);
        TextView text2 = (TextView) findViewById(android.R.id.text2);

        text1.setText(runScript(JAVA_CALL_JS_FUNCTION, "Test", new String[] {}));

        text2.setText(runScript(JS_CALL_JAVA_FUNCTION, "Test", new String[] {}));
    }

    /** Java執行js的方法 */
    private static final String JAVA_CALL_JS_FUNCTION = "function Test(){ return '農民伯伯 java call js Rhino'; }";

    /** js調用Java中的方法 */
    private static final String JS_CALL_JAVA_FUNCTION = //
    "var ScriptAPI = java.lang.Class.forName(/"" + MainActivity.class.getName() + "/", true, javaLoader);" + //
        "var methodRead = ScriptAPI.getMethod(/"jsCallJava/", [java.lang.String]);" + //
        "function jsCallJava(url) {return methodRead.invoke(null, url);}" + //
        "function Test(){ return jsCallJava(); }";

    /**
     * 執行JS
     *
     * @param js js代碼
     * @param functionName js方法名稱
     * @param functionParams js方法參數
     * @return
     */
    public String runScript(String js, String functionName, Object[] functionParams) {
        Context rhino = Context.enter();
        rhino.setOptimizationLevel(-1);
        try {
            Scriptable scope = rhino.initStandardObjects();

            ScriptableObject.putProperty(scope, "javaContext", Context.javaToJS(MainActivity.this, scope));
            ScriptableObject.putProperty(scope, "javaLoader", Context.javaToJS(MainActivity.class.getClassLoader(), scope));

            rhino.evaluateString(scope, js, "MainActivity", 1, 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();//(String) function.call(rhino, scope, scope, functionParams);
        } finally {
            Context.exit();
        }
    }

    public static String jsCallJava(String url) {
        return "農民伯伯 js call Java Rhino";
    }
}

注意,混淆的時候js.jar可能混淆不過去,請參照文章4.1的方法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
韩剧1988在线观看免费完整版| 91天堂在线视频| 91久久综合亚洲鲁鲁五月天| 91国产一区在线| 日韩欧美在线观看| 国产成人精品久久二区二区| 亚洲欧美另类自拍| 91av成人在线| 91精品国产自产在线| 欧美精品videos性欧美| xvideos成人免费中文版| 久久久精品久久久久| 色吧影院999| 亚洲一区二区三| 亚洲片国产一区一级在线观看| 亚洲人成网站色ww在线| 欧美性少妇18aaaa视频| 久久精品国产清自在天天线| 一区二区福利视频| 精品国产一区二区三区在线观看| 久久av在线播放| 国产精品伦子伦免费视频| 操人视频在线观看欧美| 中国china体内裑精亚洲片| 日韩女优人人人人射在线视频| 亚洲综合色激情五月| 亚洲精品国产综合区久久久久久久| 5278欧美一区二区三区| 亚洲一级黄色片| 国产成人小视频在线观看| 久久天天躁日日躁| 中文国产亚洲喷潮| 久久久久久亚洲| 国产精品老女人精品视频| 中文字幕欧美视频在线| 国产亚洲精品一区二555| 国产日韩在线精品av| 亚洲片国产一区一级在线观看| 91精品国产91久久久| 国产丝袜一区视频在线观看| 久久人体大胆视频| 亚洲性av网站| 欧美日产国产成人免费图片| 精品中文字幕视频| 亚洲91精品在线观看| 日韩av色在线| 色综合久久88色综合天天看泰| 精品国产一区二区三区在线观看| 亚洲欧洲一区二区三区在线观看| 性视频1819p久久| 国产精品免费福利| 奇米四色中文综合久久| 欧美限制级电影在线观看| 国产精品一区二区三区免费视频| 日韩欧美亚洲一二三区| 尤物yw午夜国产精品视频明星| 亚洲黄色片网站| 日韩精品高清在线观看| 久久久久久91香蕉国产| 91po在线观看91精品国产性色| 久久婷婷国产麻豆91天堂| 国产精品无码专区在线观看| 亚洲人精品午夜在线观看| 国产欧美精品在线播放| 精品香蕉一区二区三区| 国产欧美韩国高清| 亚洲欧美日韩国产精品| 日本最新高清不卡中文字幕| 欧美日韩激情视频8区| 九九热精品视频| 亚洲精品国偷自产在线99热| 不卡毛片在线看| 日本精品久久中文字幕佐佐木| 国产日韩精品入口| 亚洲aⅴ男人的天堂在线观看| 中文字幕日韩电影| 国产精品免费视频久久久| 91精品视频免费| xvideos成人免费中文版| 一区二区三区天堂av| 日韩精品中文字幕久久臀| 91网站在线免费观看| 午夜精品蜜臀一区二区三区免费| www.欧美三级电影.com| 亚洲黄色av网站| 国内自拍欧美激情| 狠狠久久亚洲欧美专区| 欧美性生交大片免网| 日本中文字幕久久看| 亚洲偷欧美偷国内偷| 亚洲精品视频免费在线观看| 国产成人精品免高潮在线观看| 国产成人高清激情视频在线观看| 亚洲欧美制服中文字幕| 欧美自拍大量在线观看| 欧洲美女免费图片一区| 久久久成人精品视频| 久久久国产精彩视频美女艺术照福利| 国产在线视频2019最新视频| 精品视频—区二区三区免费| 久久亚洲综合国产精品99麻豆精品福利| 亚洲成人1234| 欧美黄色三级网站| 欧美中文字幕视频| 国产欧美一区二区三区在线看| 亚洲综合第一页| 久久国内精品一国内精品| 精品国产欧美一区二区五十路| 亚洲最大福利视频| 成人免费大片黄在线播放| 国产91精品高潮白浆喷水| 日本久久久久久久久久久| 日本精品视频在线观看| 亚洲精选中文字幕| 欧美一级视频在线观看| 欧美极品欧美精品欧美视频| 欧美乱大交xxxxx| 91亚洲精品视频| 91av在线不卡| 亚洲女人被黑人巨大进入al| 欧美高跟鞋交xxxxhd| 日韩高清av在线| 亚洲精品女av网站| 欧美另类在线播放| 中文字幕国产亚洲2019| 91国在线精品国内播放| 九九热r在线视频精品| 欧美日韩国产限制| 久久色精品视频| 亚洲成人激情小说| 日韩国产高清污视频在线观看| 亚洲国产成人久久| 九九热精品视频在线播放| 亚洲区免费影片| 国产精品一区二区三区久久久| 国产91亚洲精品| 日韩欧美在线观看视频| 久久久久久久久中文字幕| 亚洲18私人小影院| 成人激情视频在线播放| 日本久久精品视频| 亚洲成色www8888| 欧美精品日韩www.p站| 国产精品美女久久久久av超清| 日韩精品视频免费专区在线播放| 欧美精品久久久久久久久| 91久久夜色精品国产网站| 久久综合国产精品台湾中文娱乐网| 日韩精品999| 国产成人精品视频| 日韩免费看的电影电视剧大全| 国产精品99一区| 丰满岳妇乱一区二区三区| 亚洲天堂男人天堂| 国产在线精品成人一区二区三区| 亚洲一区二区三区xxx视频| 91久久精品美女| 国产精品扒开腿做| 黄色一区二区在线观看| 69精品小视频| 日本最新高清不卡中文字幕| 在线观看视频亚洲| 日韩精品电影网| 欧美激情精品久久久久久大尺度|