react-native
기본 모듈
수색…
네이티브 모듈 (IOS) 만들기
소개
http://facebook.github.io/react-native/docs/native-modules-ios.html에서
때때로 앱이 플랫폼 API에 액세스해야하고 React Native에 아직 해당 모듈이 없습니다. 어쩌면 JavaScript로 다시 구현할 필요없이 기존의 Objective-C, Swift 또는 C ++ 코드를 재사용하거나 이미지 처리, 데이터베이스 또는 임의의 수의 고급 확장과 같은 고성능, 멀티 스레드 코드를 작성할 수 있습니다.
네이티브 모듈은 단순히 RCTBridgeModule
프로토콜을 구현하는 Objective-C 클래스입니다.
예
Xcode 프로젝트에서 새 파일을 만들고 Cocoa Touch Class를 선택하고 생성 마법사에서 클래스 의 이름 ( 예 : NativeModule )을 선택하고 NSObject
의 하위 클래스로 NSObject
해당 언어로 Objective-C
를 선택합니다.
이렇게하면 NativeModuleEx.h
와 NativeModuleEx.m
두 파일이 생성됩니다.
다음과 같이 RCTBridgeModule.h
를 NativeModuleEx.h
파일로 가져와야합니다.
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
@interface NativeModuleEx : NSObject <RCTBridgeModule>
@end
NativeModuleEx.m
에 다음 코드를 추가합니다.
#import "NativeModuleEx.h"
@implementation NativeModuleEx
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(testModule:(NSString *)string )
{
NSLog(@"The string '%@' comes from JavaScript! ", string);
}
@end
RCT_EXPORT_MODULE()
은 자바 스크립트에서 모듈을 액세스 가능하게 만들며, 선택적 인수를 전달하여 이름을 지정할 수 있습니다. 이름이 제공되지 않으면 Objective-C 클래스 이름과 일치합니다.
RCT_EXPORT_METHOD()
는 메소드를 JavaScript에 노출 RCT_EXPORT_METHOD()
매크로를 사용하여 내보내는 메소드 만 JavaScript에서 액세스 할 수 있습니다.
마지막으로 JavaScript에서 다음과 같이 메소드를 호출 할 수 있습니다.
import { NativeModules } from 'react-native';
var NativeModuleEx = NativeModules.NativeModuleEx;
NativeModuleEx.testModule('Some String !');