keyboard_detect_ios_util.dart 915 B

123456789101112131415161718192021222324252627282930
  1. import 'package:flutter/services.dart';
  2. import 'dart:async';
  3. import 'package:keyboard/utils/default_keyboard_helper.dart';
  4. class KeyboardDetectIOSUtil {
  5. static const EventChannel _eventChannel = EventChannel('keyboard_ios_events');
  6. // 流控制器
  7. static final StreamController<bool> _keyboardStreamController = StreamController<bool>.broadcast();
  8. // 公开的流,用于监听键盘变化
  9. static Stream<bool> get keyboardStream => _keyboardStreamController.stream;
  10. // 初始化
  11. static void initialize() {
  12. // 监听来自原生代码的事件
  13. _eventChannel.receiveBroadcastStream().listen((dynamic event) {
  14. final bool isCustomKeyboard = event as bool;
  15. _keyboardStreamController.add(isCustomKeyboard);
  16. DefaultKeyboardHelper.isDefaultKeyboard.value = isCustomKeyboard;
  17. });
  18. }
  19. // 释放资源
  20. static void dispose() {
  21. _keyboardStreamController.close();
  22. }
  23. }