react-native 调用原生模块详解
来源:互联网 发布:百度数据库工程师 编辑:程序博客网 时间:2024/06/05 09:21
一,继承 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"; private static final String 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,message); /* WritableMap params = Arguments.createMap(); params.putString("TAG",tag); params.putString("MSG",message); getReactApplicationContext() .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) .emit("logInConsole", params);//对应的javascript层的事件名为logInConsole,注册该事件即可进行回调*/ } @Override public Map<String, Object> getConstants() { final Map<String,Object> constants= MapBuilder.newHashMap(); constants.put(TAG_KEY,TAG_VALUE); return constants; }}
二,继承ReactPackage,实现如下
/** * 日志打印 需要打印日志注册this * Created by ybj on 2016/2/26. */public class ReactLogPackage implements ReactPackage { @Override public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { List<NativeModule> modules=new ArrayList<NativeModule>(); ReactLogModule reactLogModule=new ReactLogModule(reactContext); modules.add(reactLogModule); return modules; } @Override public List<Class<? extends JavaScriptModule>> createJSModules() { return Collections.emptyList(); } @Override public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { return Collections.emptyList(); }}
三 添加package
mReactInstanceManager = ReactInstanceManager.builder() .setApplication(((Activity) mContext).getApplication()) .setJSBundleFile(bundleFile) // .setJSMainModuleName("test") .setNativeModuleCallExceptionHandler(new NativeModuleCallExceptionHandler() { @Override public void handleException(Exception e) { } }) .addPackage(new MainReactPackage()) .addPackage(new ReactLogPackage()) .setUseDeveloperSupport(false) .setInitialLifecycleState(LifecycleState.RESUMED) .build();mReactRootView.startReactApplication(mReactInstanceManager, "OperationActivity", null);
0 0
- react-native 调用原生模块详解
- React-Native 原生模块(iOS)调用
- React Native调用Android原生模块
- React Native 原生模块封装、发布、调用
- React Native调用原生模块--Toast
- React native 调用Android原生模块
- react-native调用Android原生模块
- React Native 原生模块封装、发布、调用 (Android)
- react native使用原生模块
- React Native十四:原生模块
- React Native使用指南-原生模块
- React Native创建原生模块
- react native使用原生模块
- React-native 调用原生组件
- React Native调用原生组件
- react-native 调用原生方法
- Android React Native使用原生模块
- Android React Native使用原生模块
- 通过wireshark抓取telnet登陆密码
- tar.xz文件解压命令
- C#中数组、ArrayList和List三者的区别
- CSS学习笔记(三):继承、结构和层叠
- C# 泛型约束
- react-native 调用原生模块详解
- console下纯字符实现的俄罗斯方块
- kernel下面写文件
- Android.mk小结
- iOS个人整理30-网络请求Session与Connection
- 蹲草战术
- java内部类学习笔记
- Win7 下基于 Oracle VM VirtualBox 安装 Ubuntu desktop 12.04
- ELasticsearch