react-native
Moduły natywne
Szukaj…
Utwórz swój moduł macierzysty (IOS)
Wprowadzenie
z http://facebook.github.io/react-native/docs/native-modules-ios.html
Czasami aplikacja potrzebuje dostępu do interfejsu API platformy, a React Native nie ma jeszcze odpowiedniego modułu. Być może chcesz ponownie użyć istniejącego kodu Objective-C, Swift lub C ++ bez konieczności jego ponownej implementacji w JavaScript lub napisać wysokowydajny, wielowątkowy kod, na przykład do przetwarzania obrazu, bazy danych lub dowolnej liczby zaawansowanych rozszerzeń.
Moduł natywny to po prostu klasa Objective-C, która implementuje protokół RCTBridgeModule
.
Przykład
W projekcie Xcode utworzyć nowy plik i wybrać klasę kakao dotykowego, w tworzeniu kreatora wybrać nazwę dla swojej klasy (np NativeModule), sprawiają, że podklasy: NSObject
i wybierz Objective-C
dla języka.
Spowoduje to utworzenie dwóch plików NativeModuleEx.h
i NativeModuleEx.m
Trzeba będzie importować RCTBridgeModule.h
do NativeModuleEx.h
jak plik następująco:
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
@interface NativeModuleEx : NSObject <RCTBridgeModule>
@end
W swoim NativeModuleEx.m
dodaj następujący kod:
#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()
sprawi, że moduł będzie dostępny w JavaScript, możesz przekazać mu opcjonalny argument określający jego nazwę. Jeśli nie podano nazwy, będzie pasować do nazwy klasy Objective-C.
RCT_EXPORT_METHOD()
narazi twoją metodę na JavaScript, tylko metody eksportowane za pomocą tego makra będą dostępne w JavaScript.
Na koniec w JavaScript możesz wywołać metodę w następujący sposób:
import { NativeModules } from 'react-native';
var NativeModuleEx = NativeModules.NativeModuleEx;
NativeModuleEx.testModule('Some String !');