Dart 如何在浏览器中模拟击键

Dart 如何在浏览器中模拟击键,dart,keyevent,dart-html,Dart,Keyevent,Dart Html,嗨,我似乎找不到正确的方法来模拟关键事件,我遇到了3个不同的选项,我尝试过,但没有一个对我有效 //V1 import 'dart:async'; import 'dart:html'; void main() { var stream = KeyEvent.keyPressEvent.forTarget(document.body); stream.listen((KeyEvent keyEvent){ if(keyEvent.keyCode =

嗨,我似乎找不到正确的方法来模拟关键事件,我遇到了3个不同的选项,我尝试过,但没有一个对我有效

 //V1
 import 'dart:async';
 import 'dart:html';

 void main() {
     var stream = KeyEvent.keyPressEvent.forTarget(document.body);
     stream.listen((KeyEvent keyEvent){
         if(keyEvent.keyCode == KeyCode.ESC) {
        // do stuff
         }
     });
     stream.add(new KeyEvent('keypress', keyCode: KeyCode.ESC));
 }
-

-


我得到的最好的结果是

未捕获的InvalidStateError:未能对“EventTarget”执行“dispatchEvent”:事件已被调度。 来源

 //V2
 import 'dart:html';

 myCustomKeyHandler(KeyEvent e) {
     print('The charCode is ${e.charCode}');
     print('The keyCode is ${e.keyCode}');
 }
 main() {
     var controller = new KeyboardEventController.keydown(document.window);
     controller.add(myCustomKeyHandler);
 }
 //V3
 import 'dart:html';
 myCustomKeyHandler(KeyboardEvent e) {
   print('The charCode is ${e.charCode}');
   print('The keyCode is ${e.keyCode}');
 }
 main() {
   document.window.add(myCustomKeyHandler, false);
 }