Flutter桌面软件开发如何注册全局快捷键

发布于 1 年前 作者 phonegap100 345 次浏览 最后一次编辑是 1 年前 来自 分享

在windows电脑中,当我们按下Alt+q可以调用微信的截图工具,这个主要是通过注册全局快捷键实现的。

下面我们一起给大家看看 flutter中如何注册全局快捷键。

https://pub.dev/packages/hotkey_manager

1、安装Flutter注册全局快捷键插件

dependencies:
  hotkey_manager: ^0.1.7

2、引入Flutter注册全局快捷键插件

import 'package:hotkey_manager/hotkey_manager.dart';

3、使用Flutter hotkey_manager注册全局快捷键

import 'package:hotkey_manager/hotkey_manager.dart';
void main() async {
  // Must add this line.
  WidgetsFlutterBinding.ensureInitialized();
  // For hot reload, `unregisterAll()` needs to be called.
  await hotKeyManager.unregisterAll();
  runApp(MyApp());
}
 HotKey hotKey = HotKey(
    KeyCode.keyW,
    modifiers: [KeyModifier.shift], //shift+w  组合键
    // 设置热键范围(默认为 HotKeyScope.system)
    scope: HotKeyScope.system,
  );
  @override
  void initState() {
    super.initState();
    print("regisetHotKey");
    regisetHotKey();
  }

  regisetHotKey() async {
    await hotKeyManager.register(
      hotKey,
      keyDownHandler: (hotKey) {
        print('onKeyDown+${hotKey.toJson()}');
      },
      // 只在 macOS 上工作。
      keyUpHandler: (hotKey) {
        print('onKeyUp+${hotKey.toJson()}');
      },
    );
  }

  @override
  void dispose() async {
    // TODO: implement dispose
    super.dispose();
    // 取消注册
    await hotKeyManager.unregister(hotKey);
  }
回到顶部