keyboard_android_platform.dart 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import 'package:flutter/services.dart';
  2. import 'package:flutter/widgets.dart';
  3. import 'package:keyboard/utils/atmob_log.dart';
  4. import 'keyboard_android_service.dart';
  5. import 'keyboard_method_handler.dart';
  6. class KeyboardAndroidPlatform {
  7. KeyboardAndroidPlatform._();
  8. static const MethodChannel _channel = MethodChannel('keyboard_android');
  9. static const String _tag = 'KeyboardAndroidPlatform';
  10. static final KeyboardAndroidService _keyboardAndroidService =
  11. KeyboardAndroidService();
  12. static final KeyboardMethodHandler _methodHandler = KeyboardMethodHandler();
  13. static void init() {
  14. AtmobLog.d(_tag, '初始化 KeyboardAndroidPlatform ');
  15. _channel.setMethodCallHandler(_methodHandler.handleMethodCall);
  16. }
  17. static Future<void> sendDynamicTextRequest(
  18. String method,
  19. String currentContent,
  20. ) async {
  21. AtmobLog.d(_tag, 'sendDynamicTextRequest: $method');
  22. switch (method) {
  23. case 'MethodA':
  24. AtmobLog.d(_tag, '处理 MethodA');
  25. break;
  26. default:
  27. AtmobLog.d(_tag, '默认处理');
  28. }
  29. }
  30. /// 打开/关闭悬浮窗
  31. static void enableFloatingWindow(bool enable) {
  32. debugPrint('enableFloatingWindow $enable');
  33. _keyboardAndroidService.enableFloatingWindow(enable);
  34. }
  35. /// 跳转到系统的悬浮窗设置页
  36. static void jumpFloatingWindowSetting() {
  37. debugPrint('jumpFloatingWindowSetting');
  38. _keyboardAndroidService.jumpFloatingWindowSetting();
  39. }
  40. /// 是否有悬浮窗权限
  41. static Future<bool> hasFloatingWindowPermission() {
  42. debugPrint('hasFloatingWindowPermission');
  43. return _keyboardAndroidService.hasFloatingWindowPermission();
  44. }
  45. /// 打开输入法设置
  46. static void openInputMethodSettings() {
  47. debugPrint('openInputMethodSettings');
  48. _keyboardAndroidService.openInputMethodSettings();
  49. }
  50. /// 是否启用目标输入法
  51. static Future<bool> isTargetKeyboardEnabled() async {
  52. final result = await _keyboardAndroidService.isTargetKeyboardEnabled();
  53. debugPrint('isTargetKeyboardEnabled value: $result');
  54. return result;
  55. }
  56. }