keyboard_android_method_channel.dart 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import 'package:flutter/foundation.dart';
  2. import 'package:flutter/services.dart';
  3. import 'keyboard_android_platform_interface.dart';
  4. /// An implementation of [KeyboardAndroidPlatform] that uses method channels.
  5. class MethodChannelKeyboardAndroid extends KeyboardAndroidPlatform {
  6. /// The method channel used to interact with the native platform.
  7. @visibleForTesting
  8. final methodChannel = const MethodChannel('keyboard_android');
  9. @override
  10. Future<String?> getPlatformVersion() async {
  11. final version = await methodChannel.invokeMethod<String>(
  12. 'getPlatformVersion',
  13. );
  14. return version;
  15. }
  16. @override
  17. Future<void> initPlugin() async {
  18. await methodChannel.invokeMethod('initPlugin');
  19. }
  20. @override
  21. Future<void> enableFloatingWindow(bool enable) async {
  22. await methodChannel.invokeMethod('enableFloatingWindow', {
  23. 'enable': enable,
  24. });
  25. }
  26. @override
  27. Future<void> jumpFloatingWindowSetting() async {
  28. await methodChannel.invokeMethod('jumpFloatingWindowSetting');
  29. }
  30. @override
  31. Future<bool> hasFloatingWindowPermission() async {
  32. return await methodChannel.invokeMethod('hasFloatingWindowPermission') ??
  33. false;
  34. }
  35. @override
  36. Future<void> openInputMethodSettings() async {
  37. await methodChannel.invokeMethod('openInputMethodSettings');
  38. }
  39. @override
  40. Future<bool> isTargetKeyboardEnabled() async {
  41. return await methodChannel.invokeMethod<bool>('isTargetKeyboardEnabled') ??
  42. false;
  43. }
  44. @override
  45. Future<bool> isDefaultKeyboard() async {
  46. return await methodChannel.invokeMethod<bool>('isDefaultKeyboard') ?? false;
  47. }
  48. @override
  49. void updateKeyboardInfo(String keyboardInfoJson) {
  50. methodChannel.invokeMethod('updateKeyboardInfo', keyboardInfoJson);
  51. }
  52. @override
  53. void refreshCharacterList() {
  54. methodChannel.invokeMethod('refreshCharacterList');
  55. }
  56. @override
  57. void refreshData() {
  58. methodChannel.invokeMethod('refreshData');
  59. }
  60. // /// 获取键映射
  61. // @override
  62. // Future<List<Map<String, String>>> getKeyMappings() async {
  63. // final List<dynamic> mappings =
  64. // await methodChannel.invokeMethod<List<dynamic>>('getKeyMappings') ?? [];
  65. // return mappings.map<Map<String, String>>((dynamic item) {
  66. // final map = item as Map<dynamic, dynamic>;
  67. // return map.map<String, String>(
  68. // (key, value) => MapEntry(key.toString(), value.toString()),
  69. // );
  70. // }).toList();
  71. // }
  72. //
  73. // /// 设置键映射
  74. // @override
  75. // Future<bool> setKeyMappings(List<Map<String, String>> mappings) async {
  76. // return await methodChannel.invokeMethod('setKeyMappings', {
  77. // 'mappings': mappings,
  78. // });
  79. // }
  80. //
  81. // /// 通过方法名获取动态文本
  82. // @override
  83. // Future<String?> getDynamicText(String method) async {
  84. // return await methodChannel.invokeMethod('getDynamicText', {
  85. // 'method': method,
  86. // });
  87. // }
  88. }