我想在react-native中调用Object-C方法。我想这样做的一个特定原因是要在从图库中读取的照片上写入时间戳。我想调用的方法之一是CGRectMake。
任何帮助将不胜感激。
谢谢
答案 0 :(得分:0)
这不是一个相同的问题,但是答案是相同的,所以我将从here
重新发布我的答案可以使用Native Modules
同步版本
在您的JS中:
import { NativeModules} from "react-native"
const DeviceInfo = NativeModules.DeviceInfo;
const deviceName = DeviceInfo.getName();
在iOS中: RCTDeviceInfo.h
#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>
@interface RCTDeviceInfo : NSObject<RCTBridgeModule>
@end
RCTDeviceInfo.m
#import "RCTDataLogger.h"
@implementation RCTDeviceInfo
RCT_EXPORT_MODULE(DeviceInfo);
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getName) {
return [[UIDevice currentDevice] name];
}
@end
异步版本
在您的JS中:
import { NativeModules} from "react-native"
const DeviceInfo = NativeModules.DeviceInfo;
DeviceInfo.getName().then(deviceName => {
console.log("Current Device: "+deviceName);
}
在iOS中: RCTDeviceInfo.h
#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>
@interface RCTDeviceInfo : NSObject<RCTBridgeModule>
@end
RCTDeviceInfo.m
#import "RCTDataLogger.h"
@implementation RCTDeviceInfo
RCT_EXPORT_MODULE(DeviceInfo);
RCT_EXPORT_METHOD(getName
getName_resolver:(RCTPromiseResolveBlock)resolve
getName_rejecter:(RCTPromiseRejectBlock)reject) {
resolve([[UIDevice currentDevice] name]);
}
@end