Они экспортируются в нативном коде, к примеру в java есть такой декоратор, который позволяет вызвать эту нативную функцию из JS потока:
// my method class
@ReactMethod
public void setCurrentTime(final Integer key, final Float sec) {
MediaPlayer player = this.playerPool.get(key);
if (player != null) {
player.seekTo((int) Math.round(sec * 1000));
}
}
В Obj-C есть свое:
// создается нативный модуль OutputVolume
@implementation OutputVolume
RCT_EXPORT_MODULE();
// Отдает метод get
RCT_REMAP_METHOD(get,
resolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject)
{
float volume = [AVAudioSession sharedInstance].outputVolume;
NSString* volumeString = [NSString stringWithFormat:@"%f", volume];
if (volumeString) {
resolve(volumeString);
} else {
reject(@"get_error", @"Error getting system volume", nil);
}
}
А вот как принимать это в JS коде:
import { NativeModules } from 'react-native';
const MyNativeModule = NativeModules.MyNativeModule;
Почитать:
-
https://www.promptworks.com/blog/writing-native-mo...
-
https://clever.ly/blog/2017/05/09/going-native-cre...
-
https://shift.infinite.red/native-modules-for-reac...