我正尝试使用Swift和React访问当前设备上的电池信息。带有React Native的iOS电池数据
我有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
值谁能帮我弄清楚,为什么?
感谢您的回答。这个任务不一定只是给电池数据提供电源,任务是尝试写一些简单的Swift,然后利用React中的代码,这就是为什么我选择编写一些简单的电池相关功能。也不是'react-native-battery'代码Objective-C? (我可能是错的) – Dan
@Munkie你可能是对的。我根本不是Swift或Objective-C专家,所以在这里无法真正帮助你。祝你好运。 – TheJizel