react-native
ネイティブモジュール
サーチ…
ネイティブモジュール(IOS)の作成
前書き
http://facebook.github.io/react-native/docs/native-modules-ios.htmlから
アプリがプラットフォームAPIにアクセスする必要があり、React Nativeに対応するモジュールがまだない場合があります。既存のObjective-C、Swift、C ++コードをJavaScriptで再実装することなく再利用したい場合や、画像処理、データベース、または任意の数の高度な拡張機能などの高性能なマルチスレッドコードを記述したい場合があります。
ネイティブモジュールは、単にRCTBridgeModule
プロトコルを実装するObjective-Cクラスです。
例
Xcodeプロジェクトで新しいファイルを作成し、 Cocoa Touch Classを選択します。作成ウィザードでクラスの名前( NativeModuleなど )を選択し、 NSObject
サブクラスにして、その言語に対してObjective-C
を選択します。
これNativeModuleEx.h
、 NativeModuleEx.m
とNativeModuleEx.m
2つのファイルが作成されます。
あなたは、インポートする必要があります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()
はあなたのモジュールをJavaScriptでアクセス可能にします。オプションの引数を渡してその名前を指定することができます。名前が指定されていない場合は、Objective-Cクラス名と一致します。
RCT_EXPORT_METHOD()
はメソッドをJavaScriptに公開しますが、このマクロを使用してエクスポートするメソッドのみがJavaScriptでアクセス可能になります。
最後に、JavaScriptで以下のようにメソッドを呼び出すことができます:
import { NativeModules } from 'react-native';
var NativeModuleEx = NativeModules.NativeModuleEx;
NativeModuleEx.testModule('Some String !');