diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 597ecbb..b058f0f 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -6,6 +6,11 @@
+
+
+
+
+
@@ -69,7 +74,7 @@
@@ -87,6 +92,9 @@
+
diff --git a/android/app/src/main/kotlin/com/zhuoyun/qhdprevention/qhd_prevention/MyApplication.kt b/android/app/src/main/kotlin/com/zhuoyun/qhdprevention/qhd_prevention/MyApplication.kt
new file mode 100644
index 0000000..10b37dd
--- /dev/null
+++ b/android/app/src/main/kotlin/com/zhuoyun/qhdprevention/qhd_prevention/MyApplication.kt
@@ -0,0 +1,38 @@
+package com.zhuoyun.qhdprevention.qhd_prevention
+
+import android.app.Application
+import android.content.Context
+import android.util.Log
+
+class MyApplication : Application() {
+ override fun onCreate() {
+ super.onCreate()
+
+ // 通过反射调用 SDKInitializer,避免在编译期要求依赖存在
+ try {
+ val sdkClass = Class.forName("com.baidu.mapapi.SDKInitializer")
+ // setAgreePrivacy(boolean) - 有些 SDK 要求先同意隐私
+ try {
+ val setAgree = sdkClass.getMethod("setAgreePrivacy", java.lang.Boolean::class.javaPrimitiveType)
+ setAgree.invoke(null, true)
+ Log.i("MyApplication", "SDKInitializer.setAgreePrivacy invoked via reflection")
+ } catch (t: Throwable) {
+ Log.w("MyApplication", "setAgreePrivacy not available or failed: ${t.message}")
+ }
+
+ // initialize(Context)
+ try {
+ val initMethod = sdkClass.getMethod("initialize", Context::class.java)
+ initMethod.invoke(null, this)
+ Log.i("MyApplication", "SDKInitializer.initialize invoked via reflection")
+ } catch (t: Throwable) {
+ Log.w("MyApplication", "initialize(Context) not available or failed: ${t.message}")
+ }
+ } catch (e: ClassNotFoundException) {
+ // 运行时没有找到该类(可能 plugin 未包含 SDK),记录日志但不崩溃
+ Log.w("MyApplication", "Baidu SDKInitializer class not found at runtime: ${e.message}")
+ } catch (e: Throwable) {
+ Log.e("MyApplication", "Unexpected error while initializing Baidu SDK via reflection", e)
+ }
+ }
+}
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 9a1b7bc..f37a2e2 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -8,6 +8,8 @@ PODS:
- Flutter
- connectivity_plus (0.0.1):
- Flutter
+ - device_info_plus (0.0.1):
+ - Flutter
- DKImagePickerController/Core (4.3.9):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
@@ -50,6 +52,10 @@ PODS:
- BaiduMapKit/Map (= 6.6.4)
- Flutter
- flutter_baidu_mapapi_base
+ - flutter_baidu_mapapi_utils (3.9.0):
+ - BaiduMapKit/Utils (= 6.6.4)
+ - Flutter
+ - flutter_baidu_mapapi_base
- flutter_native_splash (2.4.3):
- Flutter
- flutter_new_badger (0.0.1):
@@ -66,6 +72,8 @@ PODS:
- FlutterMacOS
- nfc_manager (0.0.1):
- Flutter
+ - open_file_ios (0.0.1):
+ - Flutter
- package_info_plus (0.4.5):
- Flutter
- path_provider_foundation (0.0.1):
@@ -101,10 +109,12 @@ PODS:
DEPENDENCIES:
- camera_avfoundation (from `.symlinks/plugins/camera_avfoundation/ios`)
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
+ - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- Flutter (from `Flutter`)
- flutter_baidu_mapapi_base (from `.symlinks/plugins/flutter_baidu_mapapi_base/ios`)
- flutter_baidu_mapapi_map (from `.symlinks/plugins/flutter_baidu_mapapi_map/ios`)
+ - flutter_baidu_mapapi_utils (from `.symlinks/plugins/flutter_baidu_mapapi_utils/ios`)
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
- flutter_new_badger (from `.symlinks/plugins/flutter_new_badger/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
@@ -112,6 +122,7 @@ DEPENDENCIES:
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- mobile_scanner (from `.symlinks/plugins/mobile_scanner/darwin`)
- nfc_manager (from `.symlinks/plugins/nfc_manager/ios`)
+ - open_file_ios (from `.symlinks/plugins/open_file_ios/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- pdfx (from `.symlinks/plugins/pdfx/ios`)
@@ -137,6 +148,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/camera_avfoundation/ios"
connectivity_plus:
:path: ".symlinks/plugins/connectivity_plus/ios"
+ device_info_plus:
+ :path: ".symlinks/plugins/device_info_plus/ios"
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
Flutter:
@@ -145,6 +158,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/flutter_baidu_mapapi_base/ios"
flutter_baidu_mapapi_map:
:path: ".symlinks/plugins/flutter_baidu_mapapi_map/ios"
+ flutter_baidu_mapapi_utils:
+ :path: ".symlinks/plugins/flutter_baidu_mapapi_utils/ios"
flutter_native_splash:
:path: ".symlinks/plugins/flutter_native_splash/ios"
flutter_new_badger:
@@ -159,6 +174,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/mobile_scanner/darwin"
nfc_manager:
:path: ".symlinks/plugins/nfc_manager/ios"
+ open_file_ios:
+ :path: ".symlinks/plugins/open_file_ios/ios"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
path_provider_foundation:
@@ -186,12 +203,14 @@ SPEC CHECKSUMS:
BaiduMapKit: 84991811cb07b24c6ead7d59022c13245427782c
camera_avfoundation: be3be85408cd4126f250386828e9b1dfa40ab436
connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd
+ device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_baidu_mapapi_base: 24dd82034374c6f52a73e90316834c63ff8d4f64
flutter_baidu_mapapi_map: f799cc1bb3d39196b8d3d59399ca8635e690bd44
+ flutter_baidu_mapapi_utils: 0c69394243d51e97f521f396e150aaaf31e84e29
flutter_native_splash: c32d145d68aeda5502d5f543ee38c192065986cf
flutter_new_badger: 133aaf93e9a5542bf905c8483d8b83c5ef4946ea
fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1
@@ -199,6 +218,7 @@ SPEC CHECKSUMS:
image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
mobile_scanner: 9157936403f5a0644ca3779a38ff8404c5434a93
nfc_manager: f6d5609c09b4640b914a3dc67479a2e392965fd0
+ open_file_ios: 5ff7526df64e4394b4fe207636b67a95e83078bb
package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
pdfx: 77f4dddc48361fbb01486fa2bdee4532cbb97ef3
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index 468f6ba..29fd9ff 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -20,6 +20,10 @@
$(FLUTTER_BUILD_NAME)
CFBundleSignature
????
+ LSApplicationQueriesSchemes
+
+ baidumap
+
CFBundleVersion
$(FLUTTER_BUILD_NUMBER)
LSRequiresIPhoneOS
diff --git a/lib/customWidget/ItemWidgetFactory.dart b/lib/customWidget/ItemWidgetFactory.dart
index 831a870..0dfc7bb 100644
--- a/lib/customWidget/ItemWidgetFactory.dart
+++ b/lib/customWidget/ItemWidgetFactory.dart
@@ -46,7 +46,7 @@ class ListItemFactory {
Flexible(
fit: FlexFit.loose,
child: Text(
- _truncateText(rightText,17) ,
+ _truncateText(rightText,20) ,
style: TextStyle(fontSize: 13, color: Colors.grey),
maxLines: 1,
overflow: TextOverflow.ellipsis,
@@ -280,7 +280,7 @@ class ListItemFactory {
bottom: verticalPadding,
),
child: Container(
- padding: EdgeInsets.symmetric(horizontal: 10),
+ padding: EdgeInsets.symmetric(horizontal: 10, vertical: isEdit ? 0 : verticalPadding),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(5),
@@ -418,8 +418,10 @@ class ListItemFactory {
if (isRequired) Text('* ', style: TextStyle(color: Colors.red)),
Text(
title,
+ maxLines: 5,
+ overflow: TextOverflow.ellipsis,
style: const TextStyle(fontSize: 13, fontWeight: FontWeight.bold),
- ),
+ )
],
),
);
diff --git a/lib/http/ApiService.dart b/lib/http/ApiService.dart
index ba286f9..9691694 100644
--- a/lib/http/ApiService.dart
+++ b/lib/http/ApiService.dart
@@ -1028,28 +1028,32 @@ U6Hzm1ninpWeE+awIDAQAB
/// 安全措施个项保存
static Future