我想使用本机模块而不使用外部库来获取 iOS 设备名称。
根据 React Native 的文档,“React Native 桥是异步的,因此将结果传递给 JavaScript 的唯一方法是使用回调或发出事件”。然而,文档还解释说,您可以将常量导出到 JavaScript,而无需从 JS 到 Objective-C 进行往返。
有没有一种方法可以从本机模块导出常量,并将设备名称/型号作为值,而无需使用回调?
您可以创建头文件,如下所示:
// 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
然后在 Javascript 端同步执行以下操作:
import { NativeModules} from "react-native"
const DeviceInfo = NativeModules.DeviceInfo;
const deviceName = DeviceInfo.getName();
您可以阅读官方文档了解更多内容here https://facebook.github.io/react-native/docs/native-modules-ios
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)