ReactNative进阶:React Native与原生通信
    		       		warning:
    		            这篇文章距离上次修改已过444天,其中的内容可能已经有所变动。
    		        
        		                
                在React Native中,与原生模块通信主要通过NativeModules对象。以下是一个如何使用原生模块的例子:
首先,确保你的原生模块已经正确导出并注册到了JavaScript环境中。在iOS中,你可以这样导出模块:
// RCTMyNativeModule.h
#import <React/RCTBridgeModule.h>
 
@interface RCTMyNativeModule : NSObject <RCTBridgeModule>
@end
 
// RCTMyNativeModule.m
#import "RCTMyNativeModule.h"
 
@implementation RCTMyNativeModule
 
RCT_EXPORT_MODULE();
 
// 导出方法供JavaScript调用
RCT_EXPORT_METHOD(doSomething:(NSString *)stringParam callback:(RCTResponseSenderBlock)callback) {
    // 实现模块功能
    // ...
    
    // 调用回调返回结果
    callback(@[@"result"]);
}
 
@end在JavaScript中,你可以这样使用这个模块:
import { NativeModules } from 'react-native';
 
const MyNativeModule = NativeModules.MyNativeModule;
 
// 调用原生模块的方法
MyNativeModule.doSomething('Some parameter', (result) => {
  console.log(result); // 输出: 'result'
});确保你的原生模块名称与JavaScript中引用的名称相匹配。在iOS中,默认情况下模块类名就是模块名,但你可以通过RCT_EXPORT_MODULE(MyCustomModuleName)来指定自定义模块名。在Android中,你需要在getPackages()方法中返回一个新的ReactPackage实例,并实现createNativeModules和createViewManagers方法来导出模块。
评论已关闭