建立本機模組(IOS)

介紹

來自 http://facebook.github.io/react-native/docs/native-modules-ios.html

有時,應用程式需要訪問平臺 API,而 React Native 還沒有相應的模組。也許你想重用一些現有的 Objective-C,Swift 或 C++程式碼而不必在 JavaScript 中重新實現它,或者編寫一些高效能的多執行緒程式碼,例如用於影象處理,資料庫或任何數量的高階擴充套件。

Native Module 只是一個實現 RCTBridgeModule 協議的 Objective-C 類。

在你的 Xcode 專案中建立一個新檔案並選擇 Cocoa Touch Class ,在建立嚮導中為你的類選擇一個名稱( 例如 NativeModule ),使其成為子類NSObject 並選擇 Objective-C 作為語言。

這將建立兩個檔案 NativeModuleEx.hNativeModuleEx.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() 將使你的模組可以在 JavaScript 中訪問,你可以傳遞一個可選引數來指定其名稱。如果未提供名稱,則它將與 Objective-C 類名稱匹配。

RCT_EXPORT_METHOD() 會將你的方法公開給 JavaScript,只有你使用此巨集匯出的方法才能在 JavaScript 中訪問。

最後,在你的 JavaScript 中,你可以呼叫你的方法,如下所示:

import { NativeModules } from 'react-native';

var NativeModuleEx = NativeModules.NativeModuleEx;

NativeModuleEx.testModule('Some String !');