-
Notifications
You must be signed in to change notification settings - Fork 169
/
SwiftWifiScanPlugin.swift
45 lines (41 loc) · 1.56 KB
/
SwiftWifiScanPlugin.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import Flutter
// Since no API for scanning or getting scanned results in iOS.
// This class is just a "stub" implementation with sane returns.
// It is maintained to avoid `MissingPluginException`.
public class SwiftWifiScanPlugin: NSObject, FlutterPlugin {
public static func register(with registrar: FlutterPluginRegistrar) {
let instance = SwiftWifiScanPlugin()
// set Flutter channels - 1 for method, 1 for event
let channel = FlutterMethodChannel(
name: "wifi_scan", binaryMessenger: registrar.messenger()
)
registrar.addMethodCallDelegate(instance, channel: channel)
let eventChannel = FlutterEventChannel(
name: "wifi_scan/onScannedResultsAvailable",
binaryMessenger: registrar.messenger()
)
eventChannel.setStreamHandler(StubStreamHandler())
}
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
switch(call.method){
case "canStartScan":
return result(0) // not supported
case "startScan":
return result(false) // always fails
case "canGetScannedResults":
return result(0) // not supported
case "getScannedResults":
return result([]) // empty results
default:
return result(FlutterMethodNotImplemented)
}
}
}
class StubStreamHandler: NSObject, FlutterStreamHandler{
func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? {
return nil
}
func onCancel(withArguments arguments: Any?) -> FlutterError? {
return nil
}
}