expo-gaode-map 2.2.33 → 2.2.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +20 -14
  2. package/android/build.gradle +8 -4
  3. package/android/src/main/AndroidManifest.xml +14 -0
  4. package/android/src/main/java/expo/modules/gaodemap/ExpoGaodeMapModule.kt +7 -8
  5. package/android/src/main/java/expo/modules/gaodemap/ExpoGaodeMapOfflineModule.kt +150 -27
  6. package/android/src/main/java/expo/modules/gaodemap/ExpoGaodeMapView.kt +24 -14
  7. package/android/src/main/java/expo/modules/gaodemap/managers/UIManager.kt +38 -41
  8. package/android/src/main/java/expo/modules/gaodemap/modules/SDKInitializer.kt +18 -17
  9. package/android/src/main/java/expo/modules/gaodemap/overlays/CircleView.kt +3 -1
  10. package/android/src/main/java/expo/modules/gaodemap/overlays/ClusterView.kt +6 -1
  11. package/android/src/main/java/expo/modules/gaodemap/overlays/HeatMapView.kt +124 -10
  12. package/android/src/main/java/expo/modules/gaodemap/overlays/HeatMapViewModule.kt +2 -2
  13. package/android/src/main/java/expo/modules/gaodemap/overlays/MarkerBitmapRenderer.kt +10 -9
  14. package/android/src/main/java/expo/modules/gaodemap/overlays/MarkerView.kt +7 -11
  15. package/android/src/main/java/expo/modules/gaodemap/overlays/MultiPointView.kt +3 -1
  16. package/android/src/main/java/expo/modules/gaodemap/overlays/PolygonView.kt +2 -1
  17. package/android/src/main/java/expo/modules/gaodemap/overlays/PolylineView.kt +1 -0
  18. package/android/src/main/java/expo/modules/gaodemap/search/ExpoGaodeMapSearchModule.kt +751 -0
  19. package/android/src/main/java/expo/modules/gaodemap/utils/GeometryUtils.kt +5 -5
  20. package/android/src/main/java/expo/modules/gaodemap/utils/PermissionHelper.kt +13 -16
  21. package/build/ExpoGaodeMapOfflineModule.d.ts +5 -0
  22. package/build/ExpoGaodeMapOfflineModule.d.ts.map +1 -1
  23. package/build/ExpoGaodeMapOfflineModule.js.map +1 -1
  24. package/build/components/overlays/HeatMap.d.ts.map +1 -1
  25. package/build/components/overlays/HeatMap.js +21 -2
  26. package/build/components/overlays/HeatMap.js.map +1 -1
  27. package/build/index.d.ts +3 -0
  28. package/build/index.d.ts.map +1 -1
  29. package/build/index.js +3 -0
  30. package/build/index.js.map +1 -1
  31. package/build/search/ExpoGaodeMapSearch.types.d.ts +340 -0
  32. package/build/search/ExpoGaodeMapSearch.types.d.ts.map +1 -0
  33. package/build/search/ExpoGaodeMapSearch.types.js +19 -0
  34. package/build/search/ExpoGaodeMapSearch.types.js.map +1 -0
  35. package/build/search/ExpoGaodeMapSearchModule.d.ts +74 -0
  36. package/build/search/ExpoGaodeMapSearchModule.d.ts.map +1 -0
  37. package/build/search/ExpoGaodeMapSearchModule.js +47 -0
  38. package/build/search/ExpoGaodeMapSearchModule.js.map +1 -0
  39. package/build/search/index.d.ts +156 -0
  40. package/build/search/index.d.ts.map +1 -0
  41. package/build/search/index.js +171 -0
  42. package/build/search/index.js.map +1 -0
  43. package/build/types/map-view.types.d.ts +4 -2
  44. package/build/types/map-view.types.d.ts.map +1 -1
  45. package/build/types/map-view.types.js.map +1 -1
  46. package/build/utils/OfflineMapManager.d.ts +4 -0
  47. package/build/utils/OfflineMapManager.d.ts.map +1 -1
  48. package/build/utils/OfflineMapManager.js +6 -0
  49. package/build/utils/OfflineMapManager.js.map +1 -1
  50. package/expo-module.config.json +4 -2
  51. package/ios/ExpoGaodeMap.podspec +2 -2
  52. package/ios/ExpoGaodeMapOfflineModule.swift +60 -0
  53. package/ios/ExpoGaodeMapSearchModule.swift +773 -0
  54. package/ios/modules/LocationManager.swift +9 -3
  55. package/ios/overlays/PolylineView.swift +6 -12
  56. package/package.json +1 -1
  57. package/plugin/build/withGaodeMap.js +12 -0
@@ -1 +1 @@
1
- {"version":3,"file":"OfflineMapManager.d.ts","sourceRoot":"","sources":["../../src/utils/OfflineMapManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OfflineMapManager.d.ts","sourceRoot":"","sources":["../../src/utils/OfflineMapManager.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,12 @@ import ExpoGaodeMapOfflineModule from '../ExpoGaodeMapOfflineModule';
8
8
  */
9
9
  export class OfflineMapManager {
10
10
  // ==================== 地图列表管理 ====================
11
+ /**
12
+ * 打开高德 3D 地图 SDK 官方离线地图 UI 组件(Android)。
13
+ */
14
+ static async openOfflineMapUI() {
15
+ return ExpoGaodeMapOfflineModule.openOfflineMapUI();
16
+ }
11
17
  /**
12
18
  * 获取所有可下载的城市列表
13
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"OfflineMapManager.js","sourceRoot":"","sources":["../../src/utils/OfflineMapManager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 离线地图便捷 API\n * 提供更友好的 API 接口和事件监听\n */\n\nimport ExpoGaodeMapOfflineModule from '../ExpoGaodeMapOfflineModule';\nimport type {\n OfflineMapInfo,\n OfflineMapDownloadConfig,\n OfflineMapDownloadEvent,\n OfflineMapCompleteEvent,\n OfflineMapErrorEvent,\n OfflineMapPausedEvent,\n OfflineMapCancelledEvent,\n OfflineMapStorageInfo,\n} from '../types/offline.types';\n\n/**\n * 离线地图管理类\n */\nexport class OfflineMapManager {\n // ==================== 地图列表管理 ====================\n \n /**\n * 获取所有可下载的城市列表\n */\n static async getAvailableCities(): Promise<OfflineMapInfo[]> {\n return ExpoGaodeMapOfflineModule.getAvailableCities();\n }\n \n /**\n * 获取所有省份列表\n */\n static async getAvailableProvinces(): Promise<OfflineMapInfo[]> {\n return ExpoGaodeMapOfflineModule.getAvailableProvinces();\n }\n \n /**\n * 根据省份代码获取城市列表\n */\n static async getCitiesByProvince(provinceCode: string): Promise<OfflineMapInfo[]> {\n return ExpoGaodeMapOfflineModule.getCitiesByProvince(provinceCode);\n }\n \n /**\n * 获取已下载的地图列表\n */\n static async getDownloadedMaps(): Promise<OfflineMapInfo[]> {\n return ExpoGaodeMapOfflineModule.getDownloadedMaps();\n }\n \n // ==================== 下载管理 ====================\n \n /**\n * 开始下载离线地图\n */\n static async startDownload(config: OfflineMapDownloadConfig): Promise<void> {\n return ExpoGaodeMapOfflineModule.startDownload(config);\n }\n \n /**\n * 暂停下载\n */\n static async pauseDownload(cityCode: string): Promise<void> {\n return ExpoGaodeMapOfflineModule.pauseDownload(cityCode);\n }\n \n /**\n * 恢复下载\n */\n static async resumeDownload(cityCode: string): Promise<void> {\n return ExpoGaodeMapOfflineModule.resumeDownload(cityCode);\n }\n \n /**\n * 取消下载\n */\n static async cancelDownload(cityCode: string): Promise<void> {\n return ExpoGaodeMapOfflineModule.cancelDownload(cityCode);\n }\n \n /**\n * 删除离线地图\n */\n static async deleteMap(cityCode: string): Promise<void> {\n return ExpoGaodeMapOfflineModule.deleteMap(cityCode);\n }\n \n /**\n * 更新离线地图\n */\n static async updateMap(cityCode: string): Promise<void> {\n return ExpoGaodeMapOfflineModule.updateMap(cityCode);\n }\n \n /**\n * 检查是否有可用更新\n */\n static async checkUpdate(cityCode: string): Promise<boolean> {\n return ExpoGaodeMapOfflineModule.checkUpdate(cityCode);\n }\n \n // ==================== 状态查询 ====================\n \n /**\n * 检查地图是否已下载\n */\n static async isMapDownloaded(cityCode: string): Promise<boolean> {\n return ExpoGaodeMapOfflineModule.isMapDownloaded(cityCode);\n }\n \n /**\n * 获取地图下载状态\n */\n static async getMapStatus(cityCode: string): Promise<OfflineMapInfo> {\n return ExpoGaodeMapOfflineModule.getMapStatus(cityCode);\n }\n \n /**\n * 获取所有下载任务的总进度\n */\n static async getTotalProgress(): Promise<number> {\n return ExpoGaodeMapOfflineModule.getTotalProgress();\n }\n \n /**\n * 获取当前正在下载的城市列表\n */\n static async getDownloadingCities(): Promise<string[]> {\n return ExpoGaodeMapOfflineModule.getDownloadingCities();\n }\n \n // ==================== 存储管理 ====================\n \n /**\n * 获取离线地图占用的存储空间(字节)\n */\n static async getStorageSize(): Promise<number> {\n return ExpoGaodeMapOfflineModule.getStorageSize();\n }\n \n /**\n * 获取详细的存储信息\n */\n static async getStorageInfo(): Promise<OfflineMapStorageInfo> {\n return ExpoGaodeMapOfflineModule.getStorageInfo();\n }\n \n /**\n * 清理所有离线地图\n */\n static async clearAllMaps(): Promise<void> {\n return ExpoGaodeMapOfflineModule.clearAllMaps();\n }\n \n /**\n * 设置离线地图存储路径\n */\n static setStoragePath(path: string): void {\n ExpoGaodeMapOfflineModule.setStoragePath(path);\n }\n \n /**\n * 获取离线地图存储路径\n */\n static async getStoragePath(): Promise<string> {\n return ExpoGaodeMapOfflineModule.getStoragePath();\n }\n \n // ==================== 批量操作 ====================\n \n /**\n * 批量下载地图\n */\n static async batchDownload(cityCodes: string[], allowCellular = false): Promise<void> {\n return ExpoGaodeMapOfflineModule.batchDownload(cityCodes, allowCellular);\n }\n \n /**\n * 批量删除地图\n */\n static async batchDelete(cityCodes: string[]): Promise<void> {\n return ExpoGaodeMapOfflineModule.batchDelete(cityCodes);\n }\n \n /**\n * 批量更新地图\n */\n static async batchUpdate(cityCodes: string[]): Promise<void> {\n return ExpoGaodeMapOfflineModule.batchUpdate(cityCodes);\n }\n \n /**\n * 暂停所有下载任务\n */\n static async pauseAllDownloads(): Promise<void> {\n return ExpoGaodeMapOfflineModule.pauseAllDownloads();\n }\n \n /**\n * 恢复所有下载任务\n */\n static async resumeAllDownloads(): Promise<void> {\n return ExpoGaodeMapOfflineModule.resumeAllDownloads();\n }\n \n // ==================== 事件监听 ====================\n \n /**\n * 监听下载进度事件\n */\n static addDownloadProgressListener(\n listener: (event: OfflineMapDownloadEvent) => void\n ): { remove: () => void } {\n return ExpoGaodeMapOfflineModule.addListener('onDownloadProgress', listener);\n }\n \n /**\n * 监听下载完成事件\n */\n static addDownloadCompleteListener(\n listener: (event: OfflineMapCompleteEvent) => void\n ): { remove: () => void } {\n return ExpoGaodeMapOfflineModule.addListener('onDownloadComplete', listener);\n }\n \n /**\n * 监听下载错误事件\n */\n static addDownloadErrorListener(\n listener: (event: OfflineMapErrorEvent) => void\n ): { remove: () => void } {\n return ExpoGaodeMapOfflineModule.addListener('onDownloadError', listener);\n }\n \n /**\n * 监听下载暂停事件\n */\n static addDownloadPausedListener(\n listener: (event: OfflineMapPausedEvent) => void\n ): { remove: () => void } {\n return ExpoGaodeMapOfflineModule.addListener('onDownloadPaused', listener);\n }\n \n /**\n * 监听下载取消事件\n */\n static addDownloadCancelledListener(\n listener: (event: OfflineMapCancelledEvent) => void\n ): { remove: () => void } {\n return ExpoGaodeMapOfflineModule.addListener('onDownloadCancelled', listener);\n }\n \n /**\n * 移除所有监听器\n */\n static removeAllListeners(): void {\n ExpoGaodeMapOfflineModule.removeAllListeners('onDownloadProgress');\n ExpoGaodeMapOfflineModule.removeAllListeners('onDownloadComplete');\n ExpoGaodeMapOfflineModule.removeAllListeners('onDownloadError');\n ExpoGaodeMapOfflineModule.removeAllListeners('onDownloadPaused');\n ExpoGaodeMapOfflineModule.removeAllListeners('onDownloadCancelled');\n }\n}\n\n/**\n * 默认导出管理类\n */\nexport default OfflineMapManager;\n"]}
1
+ {"version":3,"file":"OfflineMapManager.js","sourceRoot":"","sources":["../../src/utils/OfflineMapManager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 离线地图便捷 API\n * 提供更友好的 API 接口和事件监听\n */\n\nimport ExpoGaodeMapOfflineModule from '../ExpoGaodeMapOfflineModule';\nimport type {\n OfflineMapInfo,\n OfflineMapDownloadConfig,\n OfflineMapDownloadEvent,\n OfflineMapCompleteEvent,\n OfflineMapErrorEvent,\n OfflineMapPausedEvent,\n OfflineMapCancelledEvent,\n OfflineMapStorageInfo,\n} from '../types/offline.types';\n\n/**\n * 离线地图管理类\n */\nexport class OfflineMapManager {\n // ==================== 地图列表管理 ====================\n\n /**\n * 打开高德 3D 地图 SDK 官方离线地图 UI 组件(Android)。\n */\n static async openOfflineMapUI(): Promise<void> {\n return ExpoGaodeMapOfflineModule.openOfflineMapUI();\n }\n \n /**\n * 获取所有可下载的城市列表\n */\n static async getAvailableCities(): Promise<OfflineMapInfo[]> {\n return ExpoGaodeMapOfflineModule.getAvailableCities();\n }\n \n /**\n * 获取所有省份列表\n */\n static async getAvailableProvinces(): Promise<OfflineMapInfo[]> {\n return ExpoGaodeMapOfflineModule.getAvailableProvinces();\n }\n \n /**\n * 根据省份代码获取城市列表\n */\n static async getCitiesByProvince(provinceCode: string): Promise<OfflineMapInfo[]> {\n return ExpoGaodeMapOfflineModule.getCitiesByProvince(provinceCode);\n }\n \n /**\n * 获取已下载的地图列表\n */\n static async getDownloadedMaps(): Promise<OfflineMapInfo[]> {\n return ExpoGaodeMapOfflineModule.getDownloadedMaps();\n }\n \n // ==================== 下载管理 ====================\n \n /**\n * 开始下载离线地图\n */\n static async startDownload(config: OfflineMapDownloadConfig): Promise<void> {\n return ExpoGaodeMapOfflineModule.startDownload(config);\n }\n \n /**\n * 暂停下载\n */\n static async pauseDownload(cityCode: string): Promise<void> {\n return ExpoGaodeMapOfflineModule.pauseDownload(cityCode);\n }\n \n /**\n * 恢复下载\n */\n static async resumeDownload(cityCode: string): Promise<void> {\n return ExpoGaodeMapOfflineModule.resumeDownload(cityCode);\n }\n \n /**\n * 取消下载\n */\n static async cancelDownload(cityCode: string): Promise<void> {\n return ExpoGaodeMapOfflineModule.cancelDownload(cityCode);\n }\n \n /**\n * 删除离线地图\n */\n static async deleteMap(cityCode: string): Promise<void> {\n return ExpoGaodeMapOfflineModule.deleteMap(cityCode);\n }\n \n /**\n * 更新离线地图\n */\n static async updateMap(cityCode: string): Promise<void> {\n return ExpoGaodeMapOfflineModule.updateMap(cityCode);\n }\n \n /**\n * 检查是否有可用更新\n */\n static async checkUpdate(cityCode: string): Promise<boolean> {\n return ExpoGaodeMapOfflineModule.checkUpdate(cityCode);\n }\n \n // ==================== 状态查询 ====================\n \n /**\n * 检查地图是否已下载\n */\n static async isMapDownloaded(cityCode: string): Promise<boolean> {\n return ExpoGaodeMapOfflineModule.isMapDownloaded(cityCode);\n }\n \n /**\n * 获取地图下载状态\n */\n static async getMapStatus(cityCode: string): Promise<OfflineMapInfo> {\n return ExpoGaodeMapOfflineModule.getMapStatus(cityCode);\n }\n \n /**\n * 获取所有下载任务的总进度\n */\n static async getTotalProgress(): Promise<number> {\n return ExpoGaodeMapOfflineModule.getTotalProgress();\n }\n \n /**\n * 获取当前正在下载的城市列表\n */\n static async getDownloadingCities(): Promise<string[]> {\n return ExpoGaodeMapOfflineModule.getDownloadingCities();\n }\n \n // ==================== 存储管理 ====================\n \n /**\n * 获取离线地图占用的存储空间(字节)\n */\n static async getStorageSize(): Promise<number> {\n return ExpoGaodeMapOfflineModule.getStorageSize();\n }\n \n /**\n * 获取详细的存储信息\n */\n static async getStorageInfo(): Promise<OfflineMapStorageInfo> {\n return ExpoGaodeMapOfflineModule.getStorageInfo();\n }\n \n /**\n * 清理所有离线地图\n */\n static async clearAllMaps(): Promise<void> {\n return ExpoGaodeMapOfflineModule.clearAllMaps();\n }\n \n /**\n * 设置离线地图存储路径\n */\n static setStoragePath(path: string): void {\n ExpoGaodeMapOfflineModule.setStoragePath(path);\n }\n \n /**\n * 获取离线地图存储路径\n */\n static async getStoragePath(): Promise<string> {\n return ExpoGaodeMapOfflineModule.getStoragePath();\n }\n \n // ==================== 批量操作 ====================\n \n /**\n * 批量下载地图\n */\n static async batchDownload(cityCodes: string[], allowCellular = false): Promise<void> {\n return ExpoGaodeMapOfflineModule.batchDownload(cityCodes, allowCellular);\n }\n \n /**\n * 批量删除地图\n */\n static async batchDelete(cityCodes: string[]): Promise<void> {\n return ExpoGaodeMapOfflineModule.batchDelete(cityCodes);\n }\n \n /**\n * 批量更新地图\n */\n static async batchUpdate(cityCodes: string[]): Promise<void> {\n return ExpoGaodeMapOfflineModule.batchUpdate(cityCodes);\n }\n \n /**\n * 暂停所有下载任务\n */\n static async pauseAllDownloads(): Promise<void> {\n return ExpoGaodeMapOfflineModule.pauseAllDownloads();\n }\n \n /**\n * 恢复所有下载任务\n */\n static async resumeAllDownloads(): Promise<void> {\n return ExpoGaodeMapOfflineModule.resumeAllDownloads();\n }\n \n // ==================== 事件监听 ====================\n \n /**\n * 监听下载进度事件\n */\n static addDownloadProgressListener(\n listener: (event: OfflineMapDownloadEvent) => void\n ): { remove: () => void } {\n return ExpoGaodeMapOfflineModule.addListener('onDownloadProgress', listener);\n }\n \n /**\n * 监听下载完成事件\n */\n static addDownloadCompleteListener(\n listener: (event: OfflineMapCompleteEvent) => void\n ): { remove: () => void } {\n return ExpoGaodeMapOfflineModule.addListener('onDownloadComplete', listener);\n }\n \n /**\n * 监听下载错误事件\n */\n static addDownloadErrorListener(\n listener: (event: OfflineMapErrorEvent) => void\n ): { remove: () => void } {\n return ExpoGaodeMapOfflineModule.addListener('onDownloadError', listener);\n }\n \n /**\n * 监听下载暂停事件\n */\n static addDownloadPausedListener(\n listener: (event: OfflineMapPausedEvent) => void\n ): { remove: () => void } {\n return ExpoGaodeMapOfflineModule.addListener('onDownloadPaused', listener);\n }\n \n /**\n * 监听下载取消事件\n */\n static addDownloadCancelledListener(\n listener: (event: OfflineMapCancelledEvent) => void\n ): { remove: () => void } {\n return ExpoGaodeMapOfflineModule.addListener('onDownloadCancelled', listener);\n }\n \n /**\n * 移除所有监听器\n */\n static removeAllListeners(): void {\n ExpoGaodeMapOfflineModule.removeAllListeners('onDownloadProgress');\n ExpoGaodeMapOfflineModule.removeAllListeners('onDownloadComplete');\n ExpoGaodeMapOfflineModule.removeAllListeners('onDownloadError');\n ExpoGaodeMapOfflineModule.removeAllListeners('onDownloadPaused');\n ExpoGaodeMapOfflineModule.removeAllListeners('onDownloadCancelled');\n }\n}\n\n/**\n * 默认导出管理类\n */\nexport default OfflineMapManager;\n"]}
@@ -11,7 +11,8 @@
11
11
  "MultiPointViewModule",
12
12
  "HeatMapViewModule",
13
13
  "ClusterViewModule",
14
- "ExpoGaodeMapOfflineModule"
14
+ "ExpoGaodeMapOfflineModule",
15
+ "ExpoGaodeMapSearchModule"
15
16
  ]
16
17
  },
17
18
  "android": {
@@ -25,7 +26,8 @@
25
26
  "expo.modules.gaodemap.overlays.MultiPointViewModule",
26
27
  "expo.modules.gaodemap.overlays.HeatMapViewModule",
27
28
  "expo.modules.gaodemap.overlays.ClusterViewModule",
28
- "expo.modules.gaodemap.ExpoGaodeMapOfflineModule"
29
+ "expo.modules.gaodemap.ExpoGaodeMapOfflineModule",
30
+ "expo.modules.gaodemap.search.ExpoGaodeMapSearchModule"
29
31
  ]
30
32
  }
31
33
  }
@@ -22,9 +22,9 @@ Pod::Spec.new do |s|
22
22
  s.static_framework = true
23
23
 
24
24
  s.dependency 'ExpoModulesCore'
25
- s.dependency 'AMap3DMap'
26
- s.dependency "AMapLocation"
25
+ s.dependency 'AMap3DMap', '= 10.1.600'
27
26
  s.dependency "AMapLocation"
27
+ s.dependency "AMapSearch", '~> 9.7.5'
28
28
 
29
29
  # Swift/Objective-C compatibility
30
30
  s.pod_target_xcconfig = {
@@ -2,6 +2,7 @@ import ExpoModulesCore
2
2
  import AMapFoundationKit
3
3
  import MAMapKit
4
4
  import Foundation
5
+ import UIKit
5
6
 
6
7
  /**
7
8
  * 高德地图离线地图模块 (iOS)
@@ -67,6 +68,12 @@ public class ExpoGaodeMapOfflineModule: Module {
67
68
  self.downloadingCities.removeAll()
68
69
  self.pausedCities.removeAll()
69
70
  }
71
+
72
+ AsyncFunction("openOfflineMapUI") { (promise: Promise) in
73
+ DispatchQueue.main.async {
74
+ self.openOfflineMapUI(promise: promise)
75
+ }
76
+ }
70
77
 
71
78
  // ==================== 1. 地图列表管理 ====================
72
79
 
@@ -506,4 +513,57 @@ public class ExpoGaodeMapOfflineModule: Module {
506
513
 
507
514
  return false
508
515
  }
516
+
517
+ private func openOfflineMapUI(promise: Promise) {
518
+ guard setupApiKeyIfNeeded() else {
519
+ promise.reject("ERR_SETUP", "Setup failed")
520
+ return
521
+ }
522
+
523
+ guard let detailViewController = MAOfflineMapViewController.sharedInstance() else {
524
+ promise.reject("ERR_OFFLINE_MAP_UI", "Offline map UI is unavailable")
525
+ return
526
+ }
527
+
528
+ guard let presenter = currentPresenterViewController() else {
529
+ promise.reject("ERR_NO_VIEW_CONTROLLER", "No active view controller")
530
+ return
531
+ }
532
+
533
+ if let navigationController = presenter as? UINavigationController {
534
+ navigationController.pushViewController(detailViewController, animated: true)
535
+ } else if let navigationController = presenter.navigationController {
536
+ navigationController.pushViewController(detailViewController, animated: true)
537
+ } else {
538
+ let navigationController = UINavigationController(rootViewController: detailViewController)
539
+ presenter.present(navigationController, animated: true)
540
+ }
541
+ promise.resolve(nil)
542
+ }
543
+
544
+ private func currentPresenterViewController() -> UIViewController? {
545
+ guard let scene = UIApplication.shared.connectedScenes
546
+ .compactMap({ $0 as? UIWindowScene })
547
+ .first(where: { $0.activationState == .foregroundActive }) else {
548
+ return topViewController(from: UIApplication.shared.windows.first(where: { $0.isKeyWindow })?.rootViewController)
549
+ }
550
+
551
+ let root = scene.windows.first(where: { $0.isKeyWindow })?.rootViewController
552
+ ?? scene.windows.first?.rootViewController
553
+ return topViewController(from: root)
554
+ }
555
+
556
+ private func topViewController(from root: UIViewController?) -> UIViewController? {
557
+ guard let root else { return nil }
558
+ if let presented = root.presentedViewController {
559
+ return topViewController(from: presented)
560
+ }
561
+ if let navigationController = root as? UINavigationController {
562
+ return topViewController(from: navigationController.visibleViewController)
563
+ }
564
+ if let tabBarController = root as? UITabBarController {
565
+ return topViewController(from: tabBarController.selectedViewController)
566
+ }
567
+ return root
568
+ }
509
569
  }