>

아이 패드에서 기기 정보를 얻으려고합니다. https://github.com/rebeccahughes/react-native-device- 정보 이지만 포드 설치를 수행하면 솔루션이 완전히 중단됩니다. 적어도 장치 이름을 얻을 수 있기를 원합니다. NPM 모듈을 사용하지 않고이 문제를 어떻게 해결할 수 있습니까? 아니면 추가 종속성을 가져올 필요가없는 모듈을 아는 사람이 있습니까?

감사합니다!


  • 답변 # 1

    이것은 기본 모듈을 사용하여 쉽게 수행 할 수 있으며 라이브러리 나 종속성이 필요하지 않습니다.

    동기 버전

    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
    
    

  • 이전 python - Django 프로젝트의 수퍼 유저이기 때문에 어떻게 다른 사용자의 인벤토리를 볼 수 있습니까?
  • 다음 vb.net - 레지스트리 키가 작동하지 않는지 확인