具有React Native的iOS电池数据

时间:2017-02-27 21:05:41

标签: swift react-native

我正在尝试使用Swift和React访问当前设备上的电池信息。

我的BatteryManager.swift包含

import Foundation
import UIKit

@objc(BatteryManager)
class BatteryManager: NSObject {

  @objc(getBatteryLevel)
  func getBatteryLevel() -> Float {
    return UIDevice.current.batteryLevel;
  }

  @objc(getBatteryState)
  func getBatteryState() -> UIDeviceBatteryState {
    return UIDevice.current.batteryState
  }
}

我还有BatteryManager.m个文件

#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>

@interface RCT_EXTERN_MODULE(BatteryManager, NSObject);

RCT_EXTERN_METHOD(getBatteryLevel)

RCT_EXTERN_METHOD(getBatteryState)

@end

我有BatteryManager-Bridging-Header.h个文件

#import <React/RCTBridgeModule.h>

然后我清理并构建我的项目(不确定是否有必要)并重新运行react-native run-ios以便重新启动我的React Native服务器和我的iOS模拟器。

然后我通过导入NativeModules `import {NativeModules}来自'react-native';

然后我写console.log(NativeModules.BatteryManager) - 我执行查看我的方法getBatteryLevelgetBatteryStatus,尽管它们都会产生undefined

我尝试在setTimeout中运行console.log,但继续获得值undefined

有谁能帮我弄明白为什么?

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用react-native-battery?它似乎是一个完成你想要的模块。或者,如果您想尝试调整解决方案,可以从that project's GitHub repository引用Swift逻辑(虽然这对我来说似乎是多余的)。