1.Xcode打开工程,新建Cocoa Touch Class,名称为:CoomaanTools

2.打开CoomaanTools.h中导入相关类和实现协议RCTBridgeModule 文件修改如下:
#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>
#import <React/RCTLog.h>
@interface CoomaanTools : NSObject<RCTBridgeModule>
@end
3.在CoomaanTools.m实现该协议,需要含有一个宏:RCT_EXPORT_MODULE(),同时实现JS调用接口:
#import "CoomaanTools.h"
@implementation CoomaanTools
RCT_EXPORT_MODULE();
// 对外提供调用方法,演示Callback
RCT_EXPORT_METHOD(getVersion:(RCTResponseSenderBlock)callback)
{
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];//获取项目版本号
callback(@[[NSNull null],version]);
}
@end
4.ReactNative通过NativeModules来实现传输和接受消息:
import React, { Component } from 'react';
import {
StyleSheet,
Text,
Image,
View,
ImageBackground,
StatusBar,
NativeModules,
} from 'react-native';
var CoomaanTools = NativeModules.CoomaanTools;
...
CoomaanTools.getVersion((error,event)=>{
if(error){
console.log(error)
}else{
this.setState({
version:event
})
}
})
5.完毕