react-native
Родные модули
Поиск…
Создайте свой собственный модуль (IOS)
Вступление
от http://facebook.github.io/react-native/docs/native-modules-ios.html
Иногда для приложения требуется доступ к API платформы, а у React Native еще нет соответствующего модуля. Возможно, вы хотите повторно использовать какой-то существующий код Objective-C, Swift или C ++ без необходимости переопределять его в JavaScript или написать некоторый высокопроизводительный многопоточный код, например, для обработки изображений, базы данных или любого количества расширенных расширений.
Нативный модуль - это просто класс Objective-C, который реализует протокол RCTBridgeModule
.
пример
В проекте Xcode создайте новый файл и выберите Cocoa Touch Class , в мастере создания выберите имя для своего класса ( например, NativeModule ), сделайте его подклассом : NSObject
и выберите Objective-C
для языка.
Это создаст два файла NativeModuleEx.h
и NativeModuleEx.m
Вам нужно будет импортировать RCTBridgeModule.h
в файл NativeModuleEx.h
как следует из:
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
@interface NativeModuleEx : NSObject <RCTBridgeModule>
@end
В 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()
сделает ваш модуль доступным в JavaScript, вы можете передать ему необязательный аргумент, чтобы указать его имя. Если имя не указано, оно будет соответствовать имени класса Objective-C.
RCT_EXPORT_METHOD()
предоставит ваш метод JavaScript, только методы, которые вы экспортируете с помощью этого макроса, будут доступны в JavaScript.
Наконец, в вашем JavaScript вы можете вызвать свой метод следующим образом:
import { NativeModules } from 'react-native';
var NativeModuleEx = NativeModules.NativeModuleEx;
NativeModuleEx.testModule('Some String !');