我正在尝试使用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)
- 我执行查看我的方法getBatteryLevel
和getBatteryStatus
,尽管它们都会产生undefined
。
我尝试在setTimeout
中运行console.log,但继续获得值undefined
有谁能帮我弄明白为什么?
答案 0 :(得分:0)
您是否尝试过使用react-native-battery
?它似乎是一个完成你想要的模块。或者,如果您想尝试调整解决方案,可以从that project's GitHub repository引用Swift逻辑(虽然这对我来说似乎是多余的)。