You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.2 KiB

import Flutter
public class OtaPlugin: NSObject, FlutterPlugin {
let userManager = JLBleManager.sharedInstance()
public static func register(with registrar: FlutterPluginRegistrar) {
let channel = FlutterMethodChannel(name: "ota", binaryMessenger: registrar.messenger())
let instance = OtaPlugin()
registrar.addMethodCallDelegate(instance, channel: channel)
}
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
let arguments = call.arguments as? [String: Any]
switch call.method {
case "startUpgrading":
let address = arguments?["address"] as? String
let filePath = arguments?["filePath"] as? String
startUpgrading(address: address, filePath: filePath)
result("")
case "onOtaClose":
onOtaClose()
result("")
default:
result(FlutterMethodNotImplemented)
}
}
private func startUpgrading(address: String?, filePath: String?) {
if userManager.mBleManagerState == CBManagerState.poweredOn {
userManager.startScanBLE(address, filePath: filePath)
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0) {
self.userManager.stopScanBLE()
}
}
}
private func onOtaClose() {}
}