react-native 调用原生模块详解
发布时间:2020-12-15 04:38:14 所属栏目:百科 来源:网络整理
导读:?? 一,继承 ReactContextBaseJavaModule 实现如下方法 自定义方法用 @ReactMethod注释 /** * 日志打印module * Created by ybj on 2016/2/26. */ public class ReactLogModule extends ReactContextBaseJavaModule { private static final String MODULE_NA
??
一,继承 ReactContextBaseJavaModule 实现如下方法 自定义方法用 @ReactMethod注释 /** * 日志打印module * Created by ybj on 2016/2/26. */ public class ReactLogModule extends ReactContextBaseJavaModule { private static final String MODULE_NAME="Log"; private static final String TAG_KEY = "TAG"TAG_VALUE = "LogModule" public ReactLogModule(ReactApplicationContext reactContext) { super(reactContext) } @Override public String getName() { return MODULE_NAME } @ReactMethod public void d(String tag,String message){ Log.d(tag /* WritableMap params = Arguments.createMap(); params.putString("TAG",tag); params.putString("MSG",message); getReactApplicationContext() .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) .emit("logInConsole",params);//对应的javascript层的事件名为logInConsole,注册该事件即可进行回调*/ } public Map<StringgetConstants() { final Map<StringnewHashMap() constants.put(TAG_KEYTAG_VALUE) return constants } } 二,继承ReactPackage,实现如下
* 日志打印 需要打印日志注册this * Created by ybj on 2016/2/26. */ public class ReactLogPackage implements ReactPackage { public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { List<NativeModule> modules=new ArrayList<NativeModule>() ReactLogModule reactLogModule=new ReactLogModule(reactContext) modules.add(reactLogModule) return modulespublic List<Class<? extends JavaScriptModule>> createJSModules() { return Collections.emptyList()public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { 三 添加package mReactInstanceManager = ReactInstanceManager.builder() .setApplication(((Activity) mContext).getApplication()) .setJSBundleFile(bundleFile) // .setJSMainModuleName("test") .setNativeModuleCallExceptionHandler(new NativeModuleCallExceptionHandler() { public void handleException(Exception e) { } }) .addPackage(new MainReactPackage()) .addPackage(new ReactLogPackage()) .setUseDeveloperSupport(false) .setInitialLifecycleState(LifecycleState.RESUMED) .build(); mReactRootView.startReactApplication(mReactInstanceManager"OperationActivity"; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |