default_keyboard_helper.dart 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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. DefaultKeyboardMonitor.init();
  16. // 监听默认键盘切换事件
  17. DefaultKeyboardMonitor.registerDefaultKeyboardChangeEvent((isDefault) {
  18. _handleDefaultKeyboardChange(isDefault);
  19. });
  20. if (PlatformUtil.isAndroid) {
  21. // 马上获取一次数据
  22. KeyboardAndroidPlatform.isDefaultKeyboard().then((isDefaultKeyboard) {
  23. _handleDefaultKeyboardChange(isDefaultKeyboard);
  24. });
  25. } else {
  26. MethodChanelIOSUtil.isDefaultKeyboard().then((isDefaultKeyboard) {
  27. _handleDefaultKeyboardChange(isDefaultKeyboard);
  28. });
  29. }
  30. }
  31. /// 处理默认键盘切换
  32. static void _handleDefaultKeyboardChange(bool isDefault) {
  33. isDefaultKeyboard.value = isDefault;
  34. }
  35. }