수색…


네이티브 모듈 (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.hNativeModuleEx.m 두 파일이 생성됩니다.

다음과 같이 RCTBridgeModule.hNativeModuleEx.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 !');


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow