react-native
Moduli nativi
Ricerca…
Crea il tuo modulo nativo (IOS)
introduzione
da http://facebook.github.io/react-native/docs/native-modules-ios.html
A volte un'applicazione ha bisogno di accedere all'API della piattaforma e React Native non ha ancora un modulo corrispondente. Forse vuoi riutilizzare qualche codice Objective-C, Swift o C ++ esistente senza doverlo reimplementare in JavaScript, o scrivere codice ad alte prestazioni, multi-thread come per l'elaborazione delle immagini, un database o un numero qualsiasi di estensioni avanzate.
Un modulo nativo è semplicemente una classe Objective-C che implementa il protocollo RCTBridgeModule
.
Esempio
Nel tuo progetto Xcode crea un nuovo file e seleziona Cocoa Touch Class , nella procedura guidata di creazione scegli un nome per la tua classe ( es. NativeModule ), crea una sottoclasse di : NSObject
e scegli Objective-C
per la lingua.
Questo creerà due file NativeModuleEx.h
e NativeModuleEx.m
Dovrai importare RCTBridgeModule.h
nel tuo file NativeModuleEx.h
come segue:
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
@interface NativeModuleEx : NSObject <RCTBridgeModule>
@end
Nel tuo NativeModuleEx.m
aggiungi il seguente codice:
#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()
renderà il tuo modulo accessibile in JavaScript, puoi passarlo come argomento opzionale per specificare il suo nome. Se non viene fornito alcun nome, corrisponderà al nome della classe Objective-C.
RCT_EXPORT_METHOD()
esporrà il tuo metodo a JavaScript, solo i metodi che esporti utilizzando questa macro saranno accessibili in JavaScript.
Infine, nel tuo JavaScript puoi chiamare il tuo metodo come segue:
import { NativeModules } from 'react-native';
var NativeModuleEx = NativeModules.NativeModuleEx;
NativeModuleEx.testModule('Some String !');