Flutter桌面软件开发如何注册全局快捷键
在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);
}