这个插件允许 Flutter 桌面应用定义系统/应用范围内的热键(即快捷键)。
English | 简体中文
Linux | macOS | Windows |
---|---|---|
✔️ | ✔️ | ✔️ |
将此添加到你的软件包的 pubspec.yaml 文件:
dependencies:
hotkey_manager: ^0.2.3
或
dependencies:
hotkey_manager:
git:
path: packages/hotkey_manager
url: https://github.com/leanflutter/hotkey_manager.git
ref: main
运行以下命令
sudo apt-get install keybinder-3.0
import 'package:hotkey_manager/hotkey_manager.dart';
void main() async {
// 必须加上这一行。
WidgetsFlutterBinding.ensureInitialized();
// 对于热重载,`unregisterAll()` 需要被调用。
await hotKeyManager.unregisterAll();
runApp(MyApp());
}
注册/卸载一个系统/应用范围的热键。
// ⌥ + Q
HotKey _hotKey = HotKey(
key: PhysicalKeyboardKey.keyQ,
modifiers: [HotKeyModifier.alt],
// 设置热键范围(默认为 HotKeyScope.system)
scope: HotKeyScope.inapp, // 设置为应用范围的热键。
);
await hotKeyManager.register(
_hotKey,
keyDownHandler: (hotKey) {
print('onKeyDown+${hotKey.toJson()}');
},
// 只在 macOS 上工作。
keyUpHandler: (hotKey){
print('onKeyUp+${hotKey.toJson()}');
} ,
);
await hotKeyManager.unregister(_hotKey);
await hotKeyManager.unregisterAll();
使用 HotKeyRecorder
小部件帮助您录制一个热键。
HotKeyRecorder(
onHotKeyRecorded: (hotKey) {
_hotKey = hotKey;
setState(() {});
},
),
请看这个插件的示例应用,以了解完整的例子。
- Airclap - 任何文件,任意设备,随意发送。简单好用的跨平台高速文件传输APP。
- AuthPass - 基于Flutter的密码管理器,适用于所有平台。兼容Keepass 2.x(kdbx 3.x)。
- Biyi (比译) - 一个便捷的翻译和词典应用程序。
Method | Description | Linux | macOS | Windows |
---|---|---|---|---|
register | 注册一个系统/应用范围的热键。 | ✔️ | ✔️ | ✔️ |
unregister | 取消注册一个系统/应用范围的热键。 | ✔️ | ✔️ | ✔️ |
unregisterAll | 取消注册全部系统/应用范围的热键。 | ✔️ | ✔️ | ✔️ |