cocos creator + Android studio + JS 互调方法

1. Android studio:代码


package org.cocos2dx.javascript;

public class AppActivity extends Cocos2dxActivity {

private static AppActivity app = null;

@Override
            protected void onCreate(Bundle savedInstanceState) { 
                super.onCreate(savedInstanceState);
         
                if (!isTaskRoot()) {
                    return;
                }
                SDKWrapper.getInstance().init(this);
                app=this;
            }

            /**
             *
             * 
             */
            public static void showVideoAd(final int type){
         
                app.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        AlertDialog alertDialog = new AlertDialog.Builder(app).create();
                        alertDialog.setTitle("js调用安卓代码");
                        alertDialog.setMessage("调用方法showVideoAd成功"+type);
                        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                //一定要在GL线程中执行
                                app.runOnGLThread(new Runnable() {
                                    @Override
                                    public void run() {
                                        String js="cc.find('Canvas/UIManager').getComponent(cc.Component).adsuccessShow("+type+");";
                                        Cocos2dxJavascriptJavaBridge.evalString(js);
                                    }
                                });
                            }
                        });

                        alertDialog.show();

                    }
                });
            }

        }

----------

2. js代码:UIManager.js


cc.Class({
	extends: cc.Component,
//此处省略一千行
	//请求安卓
	showAndroidAd(type) {
		jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "showVideoAd", "(I)V", type);
	},
//接受安卓回调
    adsuccessShow(type) {
    		cc.log("adsuccessShow-->", type);
    	}
//此处省略一千行
});

3.参考文档

官方原文:https://docs.cocos.com/creator/2.2/manual/zh/advanced-topics/java-reflection.html