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) { switch call.method { case "startUpgrading": startUpgrading() result("") case "onOtaClose": onOtaClose() result("") default: result(FlutterMethodNotImplemented) } } private func startUpgrading() { if userManager.mBleManagerState == CBManagerState.poweredOn { userManager.startScanBLE() DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) { self.userManager.stopScanBLE() } } } private func onOtaClose() {} }