default_keyboard_helper.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import 'dart:io';
  2. import 'package:get/get.dart';
  3. import 'package:keyboard/utils/method_chanel_ios_util.dart';
  4. import '../plugins/default_keyboard_monitor.dart';
  5. import '../plugins/keyboard_android_platform.dart';
  6. import '../widget/platform_util.dart';
  7. /// 默认键盘帮助类
  8. class DefaultKeyboardHelper {
  9. DefaultKeyboardHelper._();
  10. /// 是否是默认键盘
  11. static RxBool isDefaultKeyboard = false.obs;
  12. /// 初始化
  13. static void init() {
  14. // 初始化默认键盘监听
  15. if (PlatformUtil.isAndroid) {
  16. DefaultKeyboardMonitor.init();
  17. }
  18. // 监听默认键盘切换事件
  19. DefaultKeyboardMonitor.registerDefaultKeyboardChangeEvent((isDefault) {
  20. _handleDefaultKeyboardChange(isDefault);
  21. });
  22. if (PlatformUtil.isAndroid) {
  23. // 马上获取一次数据
  24. KeyboardAndroidPlatform.isDefaultKeyboard().then((isDefaultKeyboard) {
  25. _handleDefaultKeyboardChange(isDefaultKeyboard);
  26. });
  27. } else {
  28. MethodChanelIOSUtil.isDefaultKeyboard().then((isDefaultKeyboard) {
  29. _handleDefaultKeyboardChange(isDefaultKeyboard);
  30. });
  31. }
  32. }
  33. /// 处理默认键盘切换
  34. static void _handleDefaultKeyboardChange(bool isDefault) {
  35. isDefaultKeyboard.value = isDefault;
  36. }
  37. }