我正嘗試使用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