サーチ…


ネイティブモジュール(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.hNativeModuleEx.mNativeModuleEx.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 !');


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow