我正在尝试使用 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)
- 我确实看到我的方法 getBatteryLevel
和 getBatteryStatus
尽管它们都产生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/