React-native Android Java Module如何暴露自己的方法给js
发布时间:2020-12-15 04:47:15 所属栏目:百科 来源:网络整理
导读:最近在看React-native,对内部实现很感兴趣,自己写了Module注册进去,并且在js中调用,很好奇自己的方法是怎么暴露给js的,看了BaseJavaModule的源码,里面有方法是如何暴露的。 @OverridepublicfinalMapString,NativeMethodgetMethods(){MapString,NativeM
最近在看React-native,对内部实现很感兴趣,自己写了Module注册进去,并且在js中调用,很好奇自己的方法是怎么暴露给js的,看了BaseJavaModule的源码,里面有方法是如何暴露的。 @Override publicfinalMap<String,NativeMethod>getMethods(){ Map<String,NativeMethod>methods=newHashMap<String,NativeMethod>(); Method[]targetMethods=getClass().getDeclaredMethods(); for(inti=0;i<targetMethods.length;i++){ MethodtargetMethod=targetMethods[i]; //找有@ReactMethod注解的方法 if(targetMethod.getAnnotation(ReactMethod.class)!=null){ StringmethodName=targetMethod.getName(); if(methods.containsKey(methodName)){ //Wedonotsupportmethodoverloadingsincejsseesafunctionasanobjectregardless //ofnumberofparams. thrownewIllegalArgumentException( "JavaModule"+getName()+"methodnamealreadyregistered:"+methodName); } methods.put(methodName,newJavaMethod(targetMethod)); } } returnmethods; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |