Browse Source

[fix]修复键盘引导页显示错误的bug

Destiny 6 months ago
parent
commit
46631b9bc9

+ 14 - 0
ios/Podfile.lock

@@ -15,6 +15,13 @@ PODS:
   - flutter_bugly (0.0.1):
     - Bugly (= 2.6.1)
     - Flutter
+  - flutter_inappwebview_ios (0.0.1):
+    - Flutter
+    - flutter_inappwebview_ios/Core (= 0.0.1)
+    - OrderedSet (~> 6.0.3)
+  - flutter_inappwebview_ios/Core (0.0.1):
+    - Flutter
+    - OrderedSet (~> 6.0.3)
   - flutter_umeng (0.0.1):
     - Flutter
   - gravity_engine (0.0.1):
@@ -47,6 +54,7 @@ PODS:
   - Moya/Core (14.0.0):
     - Alamofire (~> 5.0)
   - ObjectMapper (4.4.2)
+  - OrderedSet (6.0.3)
   - package_info_plus (0.4.5):
     - Flutter
   - path_provider_foundation (0.0.1):
@@ -89,6 +97,7 @@ DEPENDENCIES:
   - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
   - Flutter (from `Flutter`)
   - flutter_bugly (from `.symlinks/plugins/flutter_bugly/ios`)
+  - flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`)
   - flutter_umeng (from `.symlinks/plugins/flutter_umeng/ios`)
   - gravity_engine (from `.symlinks/plugins/gravity_engine/ios`)
   - in_app_purchase_storekit (from `.symlinks/plugins/in_app_purchase_storekit/darwin`)
@@ -127,6 +136,7 @@ SPEC REPOS:
     - Moya
     - Moya-ObjectMapper
     - ObjectMapper
+    - OrderedSet
     - SnapKit
     - Toast-Swift
 
@@ -145,6 +155,8 @@ EXTERNAL SOURCES:
     :path: Flutter
   flutter_bugly:
     :path: ".symlinks/plugins/flutter_bugly/ios"
+  flutter_inappwebview_ios:
+    :path: ".symlinks/plugins/flutter_inappwebview_ios/ios"
   flutter_umeng:
     :path: ".symlinks/plugins/flutter_umeng/ios"
   gravity_engine:
@@ -188,6 +200,7 @@ SPEC CHECKSUMS:
   device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342
   Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
   flutter_bugly: bf35df32a9c5d50b8aacdd35bd8ddc5b55150dae
+  flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4
   flutter_umeng: 9005e3f776ff69868f0d75fbb2f11b33fbafc850
   gravity_engine: 750c5f2424a042f334f1154ece41d916eb148d6a
   in_app_purchase_storekit: a1ce04056e23eecc666b086040239da7619cd783
@@ -203,6 +216,7 @@ SPEC CHECKSUMS:
   Moya: 5b45dacb75adb009f97fde91c204c1e565d31916
   Moya-ObjectMapper: 967a99d9ea3aa9c93ddbe112aeca3667f53bfe93
   ObjectMapper: e6e4d91ff7f2861df7aecc536c92d8363f4c9677
+  OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
   package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4
   path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
   permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2

+ 0 - 17
ios/Runner/FlutterMethodChannelManager.swift

@@ -75,23 +75,6 @@ class FlutterMethodChannelManager: NSObject {
         }
     }
     
-    // 保存认证Token到App Group共享存储
-    private func saveAuthToken(_ token: String) {
-        if let userDefaults = UserDefaults(suiteName: "group.com.yourcompany.aikeyboard") {
-            userDefaults.set(token, forKey: "auth_token")
-            userDefaults.synchronize()
-            print("认证Token已保存到共享存储")
-        } else {
-            print("无法访问App Group共享存储")
-        }
-    }
-    
-    // 从App Group共享存储获取认证Token
-    private func getAuthToken() -> String? {
-        let userDefaults = UserDefaults(suiteName: "group.com.yourcompany.aikeyboard")
-        return userDefaults?.string(forKey: "auth_token")
-    }
-    
     // 是否添加键盘
     func isKeyboardEnabled() -> Bool {
         

+ 10 - 1
lib/module/keyboard_guide/keyboard_guide_controller.dart

@@ -71,7 +71,7 @@ class KeyboardGuidePageController extends BaseController {
     inputFocusNode.dispose();
     editingController.dispose();
     scrollController.dispose();
-    KeyboardDetectIOSUtil.dispose();
+    // KeyboardDetectIOSUtil.dispose();
     super.onClose();
   }
 
@@ -204,6 +204,15 @@ class KeyboardGuidePageController extends BaseController {
       Future.delayed(const Duration(milliseconds: 350), () {
         _scrollToBottom();
       });
+
+      if (PlatformUtil.isIOS)  {
+        Future.delayed(const Duration(milliseconds: 100), ()
+        {
+          MethodChanelIOSUtil.isDefaultKeyboard().then((isDefaultKeyboard) {
+            DefaultKeyboardHelper.isDefaultKeyboard.value = isDefaultKeyboard;
+          });
+        });
+      }
     }
   }
 

+ 4 - 6
lib/module/keyboard_guide/keyboard_guide_page.dart

@@ -3,6 +3,9 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:get/get.dart';
 import 'package:keyboard/module/keyboard_guide/keyboard_guide_controller.dart';
 import 'package:keyboard/router/app_pages.dart';
+import 'package:keyboard/utils/default_keyboard_helper.dart';
+import 'package:keyboard/utils/keyboard_guide_record_util.dart' show KeyboardGuideRecordUtil;
+import 'package:keyboard/utils/method_chanel_ios_util.dart';
 import 'package:keyboard/utils/toast_util.dart';
 import 'package:keyboard/widget/platform_util.dart';
 import 'package:lottie/lottie.dart';
@@ -52,7 +55,7 @@ class KeyboardGuidePage extends BasePage<KeyboardGuidePageController> {
             // 切换到前台时,重新检查设置,更新按钮状态
             controller.checkSetting();
             // 如果选择为默认键盘了,则尝试显示引导弹窗
-            if (controller.isDefaultKeyboard.value) {
+            if (controller.isDefaultKeyboard.value && KeyboardGuideRecordUtil.isFirstShowKeyboardGuide()) {
               controller.showGuideOverlayDialog();
             }
           }
@@ -270,11 +273,6 @@ class KeyboardGuidePage extends BasePage<KeyboardGuidePageController> {
                           //   controller.clearInputFocus();
                           // }
                         },
-                        onTap: () {
-                          if (PlatformUtil.isIOS)  {
-                            controller.clearInputFocus();
-                          }
-                        },
                         // 输入框控制器
                         controller: controller.editingController,
                         decoration: InputDecoration(

+ 3 - 1
lib/utils/default_keyboard_helper.dart

@@ -16,7 +16,9 @@ class DefaultKeyboardHelper {
   /// 初始化
   static void init() {
     // 初始化默认键盘监听
-    DefaultKeyboardMonitor.init();
+    if (PlatformUtil.isAndroid) {
+      DefaultKeyboardMonitor.init();
+    }
     // 监听默认键盘切换事件
     DefaultKeyboardMonitor.registerDefaultKeyboardChangeEvent((isDefault) {
       _handleDefaultKeyboardChange(isDefault);