Browse Source

fix:解决第一次安装定位出现问题,用提前注册通道解决。

zhoukun 6 months ago
parent
commit
edfa740ca0

+ 1 - 1
ios/Podfile.lock

@@ -132,6 +132,6 @@ SPEC CHECKSUMS:
   url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
   wechat_kit: b50b40a52ad88cb9e378a32e300a2d8bdc0e4726
 
-PODFILE CHECKSUM: 4f236b2587b1e693e3e6e23b7cc8c9cbccf09efd
+PODFILE CHECKSUM: 0d075c14b5530356f546e6487c30ca69bf63f587
 
 COCOAPODS: 1.16.2

+ 11 - 6
plugins/map_mapkit_ios/ios/Classes/Location/LocationManager.swift

@@ -33,13 +33,18 @@ class LocationManager: NSObject {
         locationManager.delegate = self
         setup()
     }
+    
+    func initChannel(withMessenger messenger: FlutterBinaryMessenger) {
+        locationUpdateEventChannel = FlutterEventChannel(name: MapKitConstans.locationUpdateEventChannelName, binaryMessenger: messenger)
+        locationUpdateEventChannel?.setStreamHandler(self)
+    }
 
     func start(withMessenger messenger: FlutterBinaryMessenger) -> Bool {
         // permission detect
         switch CLLocationManager.authorizationStatus() {
         case .authorizedWhenInUse, .authorizedAlways:
             locationManager.startUpdatingLocation()
-            setupMessenger(messenger: messenger)
+            //setupMessenger(messenger: messenger)
             return true
         case .notDetermined:
             return false
@@ -53,11 +58,11 @@ class LocationManager: NSObject {
         locationManager.stopUpdatingLocation()
     }
 
-    func setupMessenger(messenger: FlutterBinaryMessenger) {
-        guard locationUpdateEventChannel == nil && locationEventSink == nil else { return }
-        locationUpdateEventChannel = FlutterEventChannel(name: MapKitConstans.locationUpdateEventChannelName, binaryMessenger: messenger)
-        locationUpdateEventChannel?.setStreamHandler(self)
-    }
+//    func setupMessenger(messenger: FlutterBinaryMessenger) {
+//        guard locationUpdateEventChannel == nil && locationEventSink == nil else { return }
+//        locationUpdateEventChannel = FlutterEventChannel(name: MapKitConstans.locationUpdateEventChannelName, binaryMessenger: messenger)
+//        locationUpdateEventChannel?.setStreamHandler(self)
+//    }
 
     func setup() {
         locationManager.allowsBackgroundLocationUpdates = true

+ 1 - 0
plugins/map_mapkit_ios/ios/Classes/MapMapkitIosPlugin.swift

@@ -41,6 +41,7 @@ class CommonMethodChannelHandler: NSObject {
     }
 
     func setBinaryMessenger(binaryMessenger: FlutterBinaryMessenger) {
+        LocationManager.shared.initChannel(withMessenger: binaryMessenger)
         self.binaryMessenger = binaryMessenger
     }
 

File diff suppressed because it is too large
+ 261 - 254
pubspec.lock