Sök…


Skapa din Native Module (IOS)

Introduktion

från http://facebook.github.io/react-native/docs/native-modules-ios.html

Ibland behöver en app åtkomst till plattforms-API, och React Native har inte en motsvarande modul än. Kanske vill du återanvända någon befintlig Objekt-C-, Swift- eller C ++ -kod utan att behöva återimplementera den i JavaScript, eller skriva lite högpresterande, multetrådad kod, t.ex. för bildbehandling, en databas eller ett antal avancerade tillägg.

En infödd modul är helt enkelt en Objekt-C-klass som implementerar RCTBridgeModule protokollet.


Exempel

Skapa en ny fil i ditt Xcode-projekt och välj Cocoa Touch Class , välj ett namn för din klass ( t.ex. NativeModule ) i skapningsguiden , gör det till en underklass av : NSObject och välj Objective-C för språket.

Detta skapar två filer NativeModuleEx.h och NativeModuleEx.m

Du måste importera RCTBridgeModule.h till din NativeModuleEx.h fil enligt följande:

#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"

@interface NativeModuleEx : NSObject <RCTBridgeModule>

@end

NativeModuleEx.m till följande kod i din NativeModuleEx.m :

#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() gör din modul tillgänglig i JavaScript, du kan skicka den som ett valfritt argument för att ange dess namn. Om inget namn anges kommer det att matcha klassnamnet Objekt-C.

RCT_EXPORT_METHOD() kommer att exponera din metod för JavaScript, bara de metoder som du exporterar med detta makro kommer att vara tillgängliga i JavaScript.

Slutligen i din JavaScript kan du ringa din metod enligt följande:

import { NativeModules } from 'react-native';

var NativeModuleEx = NativeModules.NativeModuleEx;

NativeModuleEx.testModule('Some String !');


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow