react-native
Modules natifs
Recherche…
Créez votre module natif (IOS)
introduction
à partir de http://facebook.github.io/react-native/docs/native-modules-ios.html
Parfois, une application a besoin d'accéder à l'API de la plate-forme et React Native n'a pas encore de module correspondant. Vous souhaitez peut-être réutiliser un code Objective-C, Swift ou C ++ existant sans avoir à le réimplémenter en JavaScript ou écrire du code multi-thread performant, tel que traitement d'image, base de données ou nombre d'extensions avancées.
Un module natif est simplement une classe Objective-C qui implémente le protocole RCTBridgeModule
.
Exemple
Dans votre projet Xcode, créez un nouveau fichier et sélectionnez Cocoa Touch Class . Dans l'assistant de création, choisissez un nom pour votre classe ( par exemple, NativeModule ), faites-en une sous - classe de NSObject
et choisissez Objective-C
.
Cela créera deux fichiers NativeModuleEx.h
et NativeModuleEx.m
Vous devrez importer RCTBridgeModule.h
dans votre fichier NativeModuleEx.h
comme suit:
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
@interface NativeModuleEx : NSObject <RCTBridgeModule>
@end
Dans votre NativeModuleEx.m
ajoutez le code suivant:
#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()
rendra votre module accessible en JavaScript, vous pouvez lui transmettre un argument facultatif pour spécifier son nom. Si aucun nom n'est fourni, il correspondra au nom de la classe Objective-C.
RCT_EXPORT_METHOD()
exposera votre méthode à JavaScript, seules les méthodes que vous exportez à l'aide de cette macro seront accessibles en JavaScript.
Enfin, dans votre JavaScript, vous pouvez appeler votre méthode comme suit:
import { NativeModules } from 'react-native';
var NativeModuleEx = NativeModules.NativeModuleEx;
NativeModuleEx.testModule('Some String !');