react-native
Native Modules
Zoeken…
Maak uw native module (IOS)
Invoering
van http://facebook.github.io/react-native/docs/native-modules-ios.html
Soms heeft een app toegang nodig tot platform-API en heeft React Native nog geen overeenkomstige module. Misschien wilt u een aantal bestaande Objective-C-, Swift- of C ++ -code hergebruiken zonder deze opnieuw te moeten implementeren in JavaScript, of een aantal krachtige, multi-threaded code schrijven zoals voor beeldverwerking, een database of een aantal geavanceerde extensies.
Een native module is gewoon een Objective-C-klasse die het RCTBridgeModule
protocol implementeert.
Voorbeeld
Maak in uw Xcode-project een nieuw bestand en selecteer Cocoa Touch Class , kies in de aanmaakwizard een naam voor uw klasse ( bijv. NativeModule ), maak er een subklasse van : NSObject
en kies Objective-C
voor de taal.
Hiermee worden twee bestanden NativeModuleEx.h
en NativeModuleEx.m
U moet importeren RCTBridgeModule.h
om uw NativeModuleEx.h
bestand als volgt:
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
@interface NativeModuleEx : NSObject <RCTBridgeModule>
@end
Voeg in uw NativeModuleEx.m
de volgende code toe:
#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()
maakt uw module toegankelijk in JavaScript, u kunt een optioneel argument doorgeven om de naam ervan op te geven. Als er geen naam wordt opgegeven, komt deze overeen met de naam van de Objective-C-klasse.
RCT_EXPORT_METHOD()
stelt uw methode bloot aan JavaScript, alleen de methoden die u exporteert met deze macro zijn toegankelijk in JavaScript.
Ten slotte kunt u in uw JavaScript uw methode als volgt aanroepen:
import { NativeModules } from 'react-native';
var NativeModuleEx = NativeModules.NativeModuleEx;
NativeModuleEx.testModule('Some String !');