ソースを参照

fix:优化替换图片和优化操作地图的一些方法。

“HeShaoZe” 4 ヶ月 前
コミット
ec9548809a

BIN
assets/images/icon_friend_news_android.webp


BIN
assets/images/icon_main_add_friend_android.webp


BIN
assets/images/icon_main_friend_guard_android.webp


BIN
assets/images/icon_main_help_android.webp


BIN
assets/images/icon_main_mine_android.webp


BIN
assets/images/icon_main_news_android.webp


BIN
assets/images/icon_news_android.webp


+ 1 - 1
ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

@@ -52,7 +52,7 @@
       </Testables>
    </TestAction>
    <LaunchAction
-      buildConfiguration = "Debug"
+      buildConfiguration = "Release"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"

+ 3 - 2
lib/module/friend/friend_page.dart

@@ -1,3 +1,5 @@
+import 'dart:io';
+
 import 'package:flutter/material.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:get/get.dart';
@@ -138,8 +140,7 @@ class FriendPage extends BasePage<FriendController> {
           }),
           GestureDetector(
               onTap: controller.newsClick,
-              child:
-                  Assets.images.iconFriendNews.image(width: 24.w, height: 24.w))
+              child: Platform.isIOS ? Assets.images.iconFriendNews.image(width: 24.w, height: 24.w) : Assets.images.iconFriendNewsAndroid.image(width: 24.w, height: 24.w))
         ],
       ),
     );

+ 7 - 5
lib/module/main/main_page.dart

@@ -1,3 +1,4 @@
+import 'dart:io';
 import 'dart:ui';
 
 import 'package:flutter/cupertino.dart';
@@ -299,7 +300,8 @@ class MainPage extends BasePage<MainController> {
               },
               child: Container(
                   margin: EdgeInsets.only(right: 16.w, left: 8.w),
-                  child: Assets.images.iconMainAddFriend
+                  child: Platform.isIOS ? Assets.images.iconMainAddFriend
+                      .image(width: 60.w, height: 60.w) : Assets.images.iconMainAddFriendAndroid
                       .image(width: 60.w, height: 60.w)),
             )
           ],
@@ -360,21 +362,21 @@ class MainPage extends BasePage<MainController> {
       children: [
         Expanded(
             child: buildFunItem(
-                Assets.images.iconMainFriendGuard.provider(),
+                Platform.isIOS ? Assets.images.iconMainFriendGuard.provider() : Assets.images.iconMainFriendGuardAndroid.provider(),
                 StringName.mainFriendListTab,
                 () => controller.onFriendClick())),
         Expanded(child: Obx(() {
-          return buildFunItem(Assets.images.iconMainNews.provider(),
+          return buildFunItem(Platform.isIOS ? Assets.images.iconMainNews.provider() : Assets.images.iconMainNewsAndroid.provider(),
               StringName.mainNewsTab, () => controller.onNewsClick(),
               isShowDot: controller.hasUnreadMessage);
         })),
         Expanded(
             child: buildFunItem(
-                Assets.images.iconMainHelp.provider(),
+                Platform.isIOS ? Assets.images.iconMainHelp.provider() : Assets.images.iconMainHelpAndroid.provider(),
                 StringName.mainHelpTab,
                 () => controller.onUrgentContactClick())),
         Expanded(
-            child: buildFunItem(Assets.images.iconMainMine.provider(),
+            child: buildFunItem(Platform.isIOS ? Assets.images.iconMainMine.provider() : Assets.images.iconMainMineAndroid.provider(),
                 StringName.mainMineTab, () => controller.onMineClick()))
       ],
     );

+ 1 - 1
lib/module/news/news_page.dart

@@ -148,7 +148,7 @@ class NewsPage extends BasePage<NewsController> {
           GestureDetector(
               onTap: controller.newsClick,
               child:
-                  Assets.images.iconFriendNews.image(width: 24.w, height: 24.w))
+              Platform.isIOS ? Assets.images.iconFriendNews.image(width: 24.w, height: 24.w) : Assets.images.iconFriendNewsAndroid.image(width: 24.w, height: 24.w))
         ],
       ),
     );

+ 35 - 0
lib/resource/assets.gen.dart

@@ -225,6 +225,10 @@ class $AssetsImagesGen {
   AssetGenImage get iconFriendNews =>
       const AssetGenImage('assets/images/icon_friend_news.webp');
 
+  /// File path: assets/images/icon_friend_news_android.webp
+  AssetGenImage get iconFriendNewsAndroid =>
+      const AssetGenImage('assets/images/icon_friend_news_android.webp');
+
   /// File path: assets/images/icon_friend_setting_copy.webp
   AssetGenImage get iconFriendSettingCopy =>
       const AssetGenImage('assets/images/icon_friend_setting_copy.webp');
@@ -265,14 +269,26 @@ class $AssetsImagesGen {
   AssetGenImage get iconMainAddFriend =>
       const AssetGenImage('assets/images/icon_main_add_friend.webp');
 
+  /// File path: assets/images/icon_main_add_friend_android.webp
+  AssetGenImage get iconMainAddFriendAndroid =>
+      const AssetGenImage('assets/images/icon_main_add_friend_android.webp');
+
   /// File path: assets/images/icon_main_friend_guard.webp
   AssetGenImage get iconMainFriendGuard =>
       const AssetGenImage('assets/images/icon_main_friend_guard.webp');
 
+  /// File path: assets/images/icon_main_friend_guard_android.webp
+  AssetGenImage get iconMainFriendGuardAndroid =>
+      const AssetGenImage('assets/images/icon_main_friend_guard_android.webp');
+
   /// File path: assets/images/icon_main_help.webp
   AssetGenImage get iconMainHelp =>
       const AssetGenImage('assets/images/icon_main_help.webp');
 
+  /// File path: assets/images/icon_main_help_android.webp
+  AssetGenImage get iconMainHelpAndroid =>
+      const AssetGenImage('assets/images/icon_main_help_android.webp');
+
   /// File path: assets/images/icon_main_map_clock.webp
   AssetGenImage get iconMainMapClock =>
       const AssetGenImage('assets/images/icon_main_map_clock.webp');
@@ -281,10 +297,18 @@ class $AssetsImagesGen {
   AssetGenImage get iconMainMine =>
       const AssetGenImage('assets/images/icon_main_mine.webp');
 
+  /// File path: assets/images/icon_main_mine_android.webp
+  AssetGenImage get iconMainMineAndroid =>
+      const AssetGenImage('assets/images/icon_main_mine_android.webp');
+
   /// File path: assets/images/icon_main_news.webp
   AssetGenImage get iconMainNews =>
       const AssetGenImage('assets/images/icon_main_news.webp');
 
+  /// File path: assets/images/icon_main_news_android.webp
+  AssetGenImage get iconMainNewsAndroid =>
+      const AssetGenImage('assets/images/icon_main_news_android.webp');
+
   /// File path: assets/images/icon_main_refresh_friend_location.webp
   AssetGenImage get iconMainRefreshFriendLocation => const AssetGenImage(
       'assets/images/icon_main_refresh_friend_location.webp');
@@ -489,6 +513,10 @@ class $AssetsImagesGen {
   AssetGenImage get iconNews =>
       const AssetGenImage('assets/images/icon_news.webp');
 
+  /// File path: assets/images/icon_news_android.webp
+  AssetGenImage get iconNewsAndroid =>
+      const AssetGenImage('assets/images/icon_news_android.webp');
+
   /// File path: assets/images/icon_news_item.webp
   AssetGenImage get iconNewsItem =>
       const AssetGenImage('assets/images/icon_news_item.webp');
@@ -709,6 +737,7 @@ class $AssetsImagesGen {
         iconFriendEdit,
         iconFriendEditArrow,
         iconFriendNews,
+        iconFriendNewsAndroid,
         iconFriendSettingCopy,
         iconGuard,
         iconLoginAddressBook,
@@ -719,11 +748,16 @@ class $AssetsImagesGen {
         iconLogo,
         iconLogoMax,
         iconMainAddFriend,
+        iconMainAddFriendAndroid,
         iconMainFriendGuard,
+        iconMainFriendGuardAndroid,
         iconMainHelp,
+        iconMainHelpAndroid,
         iconMainMapClock,
         iconMainMine,
+        iconMainMineAndroid,
         iconMainNews,
+        iconMainNewsAndroid,
         iconMainRefreshFriendLocation,
         iconMainRefreshMineLocation,
         iconMainTrackArrow,
@@ -775,6 +809,7 @@ class $AssetsImagesGen {
         iconNetMobile,
         iconNetWifi,
         iconNews,
+        iconNewsAndroid,
         iconNewsItem,
         iconNewsReport,
         iconNewsReportAgree,

+ 11 - 10
plugins/map_amap_ios/ios/Classes/MapAmapContentView/MapAmapThemeControl.swift

@@ -83,8 +83,6 @@ class MapAmapThemeControl: UIViewController {
 //                UIView.animate(withDuration: 0.3) {
 //                    self?.autonaviMap.addAnnotations(markers)
 //                }
-                
-                
                 var mapMarkerList = [MAPointAnnotation]();
                 for markerItem in markers {
                     let annotationItem : MyMAPointAnnotation = MyMAPointAnnotation(itemMarker: markerItem)
@@ -95,19 +93,22 @@ class MapAmapThemeControl: UIViewController {
                 self?.autonaviMap.addAnnotations(mapMarkerList)
                // self?.autonaviMap.selectAnnotation(mapMarkerList.first, animated: true)
                 self?.autonaviMap.setZoomLevel(20, animated: true)
-                if !mapMarkerList.isEmpty {
+                /*if !mapMarkerList.isEmpty {
                     let selectIemt : MAPointAnnotation = mapMarkerList.first!
                     self?.autonaviMap.setCenter(selectIemt.coordinate, animated: true)
-                }
-
-                //self?.mapView.removeAnnotations(self?.mapView.annotations ?? [])
-//                UIView.animate(withDuration: 0.3) {
-//                    self?.mapView.addAnnotations(markers)
-//                }
+                }*/
             }
             .store(in: &cancellables)
         
-        
+        ///移动到特定的位置
+        viewModel.$currentRegion
+            .compactMap { $0 }
+            .receive(on: DispatchQueue.main)
+            .sink { [weak self] region in
+                self?.autonaviMap.setRegion(region, animated: true)
+                //self?.mapView.setRegion(region, animated: true)
+            }
+            .store(in: &cancellables)
         
         viewModel.$polylines
             .receive(on: DispatchQueue.main)

+ 7 - 1
plugins/map_amap_ios/ios/Classes/MapDataCommunicationProtocol.swift

@@ -8,6 +8,7 @@
 import Foundation
 import MapKit
 import Flutter
+import MAMapKit
 
 // 地图功能接口定义
 protocol MapCapability {
@@ -15,7 +16,7 @@ protocol MapCapability {
 
     var methodChannel: FlutterMethodChannel? { get set }
     
-    var currentRegion: MKCoordinateRegion? { get set }
+    var currentRegion: MACoordinateRegion? { get set }
 
     var markers: [ATMapMarker] { get set }
 
@@ -36,6 +37,9 @@ protocol MapCapability {
     // 处理地图清除Marker
     func handleMapClearMarkers(result: @escaping FlutterResult)
     
+    // 处理地图清除所有的Polyline
+    func handleMapClearAllPolyline(result: @escaping FlutterResult)
+    
     // 处理地图替换所有Marker
     func handleMapReplaceAllMarkers(args: [[String: Any]]?, result: @escaping FlutterResult)
     
@@ -84,6 +88,8 @@ extension MapCapability {
             handleMapInteractionEnabled(args: call.arguments as? [String: Any], result: result)
         case .methodMapLogoVisible:
             handleMapLogoVisible(args: call.arguments as? [String: Any], result: result)
+        case .methodMapClearAllPolylines:
+            handleMapClearAllPolyline(result: result)
         default:
             result(FlutterMethodNotImplemented)
         }

+ 1 - 0
plugins/map_amap_ios/ios/Classes/ModelData/MapAmapDataChannelKeyword.swift

@@ -19,6 +19,7 @@ enum MapAmapDataChannelKeyword: String, CaseIterable {
     case methodMapMoveToSuitableLocation = "map#moveToSuitableLocation"
     case methodMapInteractionEnabled = "map#interactionEnabled"
     case methodMapLogoVisible = "map#logoVisible"
+    case methodMapClearAllPolylines = "polyline#clearAllPolylines"
     
     // 标记物相关方法名称
     case methodUpdateOrAddMarkers = "marker#updateOrAddMarkers"

+ 10 - 4
plugins/map_amap_ios/ios/Classes/ViewAndDataExchange/MapAmapViewAndDataExchange.swift

@@ -11,6 +11,7 @@ import Combine
 import MapKit
 import CoreLocation
 import Flutter
+import MAMapKit
 
 @available(iOS 13.0, *)
 class MapAmapViewAndDataExchange: NSObject, ObservableObject, MapCapability {
@@ -19,7 +20,7 @@ class MapAmapViewAndDataExchange: NSObject, ObservableObject, MapCapability {
     
     var methodChannel: FlutterMethodChannel?
     
-    @Published var currentRegion: MKCoordinateRegion?
+    @Published var currentRegion: MACoordinateRegion?
     
     // 地图Marker
     @Published var markers: [ATMapMarker] = []
@@ -45,9 +46,8 @@ class MapAmapViewAndDataExchange: NSObject, ObservableObject, MapCapability {
         
         let center = CLLocationCoordinate2D(latitude: cameraPosition.latitude, longitude: cameraPosition.longitude)
         let zoome = cameraPosition.zoom / 10000
-        let span = MKCoordinateSpan(latitudeDelta: zoome, longitudeDelta: zoome)
-        
-        currentRegion = MKCoordinateRegion(center: center, span: span)
+        let span = MACoordinateSpanMake(zoome, zoome)//MKCoordinateSpan(latitudeDelta: zoome, longitudeDelta: zoome)
+        currentRegion = MACoordinateRegion(center: center, span: span);//MKCoordinateRegion(center: center, span: span)
         result(nil)
     }
     
@@ -75,6 +75,12 @@ class MapAmapViewAndDataExchange: NSObject, ObservableObject, MapCapability {
         result(nil)
     }
     
+    //处理地图所有plolines
+    func handleMapClearAllPolyline(result: @escaping FlutterResult) {
+        polylines = []
+        result(nil)
+    }
+    
     // 处理地图替换所有Marker
     func handleMapReplaceAllMarkers(args: [[String: Any]]?, result: @escaping FlutterResult) {
         defer {