react-native
Módulos nativos
Buscar..
Crea tu módulo nativo (IOS)
Introducción
de http://facebook.github.io/react-native/docs/native-modules-ios.html
A veces, una aplicación necesita acceso a la API de la plataforma, y React Native todavía no tiene un módulo correspondiente. Tal vez desee reutilizar algún código existente de Objective-C, Swift o C ++ sin tener que volverlo a implementar en JavaScript, o escribir algún código de alto rendimiento y multiproceso, como para el procesamiento de imágenes, una base de datos o cualquier número de extensiones avanzadas.
Un módulo nativo es simplemente una clase Objective-C que implementa el protocolo RCTBridgeModule
.
Ejemplo
En su proyecto Xcode cree un nuevo archivo y seleccione Cocoa Touch Class , en el asistente de creación elija un nombre para su clase ( por ejemplo, NativeModule ), conviértalo en una subclase de : NSObject
y elija Objective-C
para el idioma.
Esto creará dos archivos NativeModuleEx.h
y NativeModuleEx.m
Deberá importar RCTBridgeModule.h
a su archivo NativeModuleEx.h
siguiente manera:
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
@interface NativeModuleEx : NSObject <RCTBridgeModule>
@end
En su NativeModuleEx.m
agregue el siguiente código:
#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()
hará que su módulo sea accesible en JavaScript, puede pasarle un argumento opcional para especificar su nombre. Si no se proporciona ningún nombre, coincidirá con el nombre de clase de Objective-C.
RCT_EXPORT_METHOD()
expondrá su método a JavaScript, solo los métodos que exporte utilizando esta macro serán accesibles en JavaScript.
Finalmente, en tu JavaScript puedes llamar a tu método como sigue:
import { NativeModules } from 'react-native';
var NativeModuleEx = NativeModules.NativeModuleEx;
NativeModuleEx.testModule('Some String !');