1
0
mirror of https://github.com/flutter/samples.git synced 2026-04-06 19:52:04 +00:00

add iOS implementation for battery plugin (#579)

This commit is contained in:
Ayush Bherwani
2020-11-03 03:45:00 +05:30
committed by GitHub
parent 9b968cf85e
commit 0c011574d0
10 changed files with 193 additions and 40 deletions

View File

@@ -3,12 +3,24 @@ import UIKit
public class SwiftFederatedPlugin: NSObject, FlutterPlugin {
public static func register(with registrar: FlutterPluginRegistrar) {
let channel = FlutterMethodChannel(name: "federated_plugin", binaryMessenger: registrar.messenger())
let channel = FlutterMethodChannel(name: "battery", binaryMessenger: registrar.messenger())
let instance = SwiftFederatedPlugin()
registrar.addMethodCallDelegate(instance, channel: channel)
}
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
result("iOS " + UIDevice.current.systemVersion)
guard call.method == "getBatteryLevel" else {
result(FlutterMethodNotImplemented)
return
}
let device = UIDevice.current
device.isBatteryMonitoringEnabled = true
if device.batteryState == UIDevice.BatteryState.unknown {
result(FlutterError(code: "STATUS_UNAVAILABLE", message: "Not able to determine battery level", details: nil))
}
result(Int(device.batteryLevel * 100))
}
}