swift - 使用 React Native 获取 iOS 电池数据

标签 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 `从'react-native'导入{NativeModules};

然后我写 console.log(NativeModules.BatteryManager) - 我确实看到我的方法 getBatteryLevelgetBatteryStatus 尽管它们都产生undefined

我尝试在 setTimeout 中运行 console.log,但仍然获得 undefined

谁能帮我找出原因吗?

最佳答案

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

关于swift - 使用 React Native 获取 iOS 电池数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42495749/

相关文章:

javascript - 过滤器 JSON 不起作用

javascript - ES6 中 funcName() {} 和 funcName = () => {} 的区别

javascript - Babel 似乎没有改变我的 React-Native 代码

swift - 如何在子类中使用 Parse.com bool 值

swift - 这个最小的 UITextFieldDelegate 实现中缺少什么导致崩溃?

ios - 尽管我以编程方式选择了一个单元格,但 indexPathForSelectedRow 返回 nil

xcode - 在 swift 中使用解析填充图像数组

ios - Collection View 不滚动之一,容器 View 内

react-native - 如何在 React Native 中播放麦克风流?

javascript - react native : <Text> won't render if placed inside <TouchableHighlight>