44 * BSD-style license that can be found in the LICENSE file.
55 */
66
7+ #if os(iOS)
78import Flutter
89import UIKit
10+ #else
11+ import FlutterMacOS
12+ import AppKit
13+ #endif
914import CoreLocation
1015
11- public class SwiftFlutterBlePeripheralPlugin : NSObject , FlutterPlugin {
16+ public class FlutterBlePeripheralPlugin : NSObject , FlutterPlugin {
1217
1318 private let flutterBlePeripheralManager : FlutterBlePeripheralManager
1419
@@ -22,10 +27,16 @@ public class SwiftFlutterBlePeripheralPlugin: NSObject, FlutterPlugin {
2227 }
2328
2429 public static func register( with registrar: FlutterPluginRegistrar ) {
25- let instance = SwiftFlutterBlePeripheralPlugin ( stateChangedHandler: StateChangedHandler ( registrar: registrar) )
30+ let instance = FlutterBlePeripheralPlugin ( stateChangedHandler: StateChangedHandler ( registrar: registrar) )
31+
32+ #if os(iOS)
33+ let messenger = registrar. messenger ( )
34+ #else
35+ let messenger = registrar. messenger
36+ #endif
2637
2738 // Method channel
28- let methodChannel = FlutterMethodChannel ( name: " dev.steenbakker.flutter_ble_peripheral/ble_state " , binaryMessenger: registrar . messenger ( ) )
39+ let methodChannel = FlutterMethodChannel ( name: " dev.steenbakker.flutter_ble_peripheral/ble_state " , binaryMessenger: messenger)
2940 registrar. addMethodCallDelegate ( instance, channel: methodChannel)
3041
3142 // Event channels
@@ -40,11 +51,11 @@ public class SwiftFlutterBlePeripheralPlugin: NSObject, FlutterPlugin {
4051 case " stop " :
4152 stopPeripheral ( result)
4253 case " isAdvertising " :
43- result ( stateChangedHandler. state == PeripheralState . advertising)
54+ result ( stateChangedHandler. state == FlutterBlePeripheralState . advertising)
4455 case " isSupported " :
4556 isSupported ( result)
4657 case " isConnected " :
47- result ( stateChangedHandler. state == PeripheralState . connected)
58+ result ( stateChangedHandler. state == FlutterBlePeripheralState . connected)
4859 case " openBluetoothSettings " :
4960 openAppSettings ( )
5061 result ( nil )
@@ -57,7 +68,7 @@ public class SwiftFlutterBlePeripheralPlugin: NSObject, FlutterPlugin {
5768
5869 private func startPeripheral( _ call: FlutterMethodCall , _ result: @escaping FlutterResult ) {
5970 let map = call. arguments as? Dictionary < String , Any >
60- let advertiseData = PeripheralData (
71+ let advertiseData = FlutterBlePeripheralData (
6172 uuid: map ? [ " serviceUuid " ] as? String ,
6273 localName: map ? [ " localName " ] as? String ,
6374 uuids: map ? [ " serviceUuids " ] as? [ String ] ,
@@ -68,7 +79,7 @@ public class SwiftFlutterBlePeripheralPlugin: NSObject, FlutterPlugin {
6879
6980 private func stopPeripheral( _ result: @escaping FlutterResult ) {
7081 flutterBlePeripheralManager. peripheralManager. stopAdvertising ( )
71- stateChangedHandler. publishPeripheralState ( state: PeripheralState . idle)
82+ stateChangedHandler. publishPeripheralState ( state: FlutterBlePeripheralState . idle)
7283 result ( nil )
7384 }
7485
@@ -82,11 +93,13 @@ public class SwiftFlutterBlePeripheralPlugin: NSObject, FlutterPlugin {
8293 }
8394
8495 private func openAppSettings( ) {
85- if let url = URL ( string : UIApplication . openSettingsURLString ) {
86- if UIApplication . shared . canOpenURL ( url ) {
87- UIApplication . shared. open ( url , options : [ : ] , completionHandler : nil )
96+ # if os(iOS)
97+ if let settingsUrl = URL ( string : UIApplication . openSettingsURLString ) {
98+ UIApplication . shared. open ( settingsUrl )
8899 }
89- }
100+ #else
101+ NSWorkspace . shared. open ( URL ( fileURLWithPath: " /System/Applications/System Settings.app " ) )
102+ #endif
90103 }
91104
92105// private func sendData(_ call: FlutterMethodCall,
0 commit comments