Что такое код клавиши для «Далее» в Android VirtualKeyBoard - PullRequest
0 голосов
/ 24 сентября 2019

Я усиливаю (в угловой директиве) google помещает автозаполнение ввода, чтобы выбрать первый вариант, если ни один не выбран.

Я использую приведенный ниже код, который работает как талисман при использовании «вкладки»или клавиша «Ввод».

К сожалению, она не работает на устройстве Android (Chrome) с виртуальной клавишей «Следующая» клавиша ...

Какой может быть код клавишиэта клавиша " next ", так как она не является ни "tab" (9), ни "enter" (13)

selectFirstOnEnterOrTab(input) {
    // prevent submit on enter (13)
    $(input).keydown(function (e) {
      if (e.which === 13 && $('.pac-container:visible').length) {
        return false;
      }
    });

    // store the original event binding function
    const _addEventListener = (input.addEventListener) ? input.addEventListener : input.attachEvent;
    function addEventListenerWrapper(type, listener) {
      // Simulate a 'down arrow' keypress on hitting 'return' when no pac suggestion is selected,
      // and then trigger the original listener.
      if (type === 'keydown') {
        const orig_listener = listener;
        listener = function (event) {
          const suggestion_selected = $('.pac-item-selected').length > 0;
          if ((event.which >= 9 && event.which <= 13) && !suggestion_selected) {
            const simulated_downarrow = $.Event('keydown', {
              keyCode: 40, which: 40
            });
            orig_listener.apply(input, [simulated_downarrow]);
          }
          orig_listener.apply(input, [event]);
        };
      }
      _addEventListener.apply(input, [type, listener]); // add the modified listener
    }
    if (input.addEventListener) {
      input.addEventListener = addEventListenerWrapper;
    } else if (input.attachEvent) {
      input.attachEvent = addEventListenerWrapper;
    }
  }

EDIT

Следуя предложению Питто, я зарегистрировал код и код на моем устройстве Android, и для всех нажатых клавиш я получаю 229, что, по-видимому, является нормальным поведением для Android.Любые идеи о том, как я могу обновить свой код для его работы на устройстве Android тоже ...

EDIT2

На андроиде, на "следующий" нажал, естьнет keydown событие сработало

1 Ответ

0 голосов
/ 24 сентября 2019

Можете ли вы попытаться установить минимальную страницу с этим кодом и посмотреть, печатает ли она правильное значение?

document.body.addEventListener("keyup", function(event) {
   console.log(event.key);
   console.log(event.code);
});

Или, что еще проще, вы можете получить коды клавиш с помощью этого веб-сайта:
https://keycode.info

Данные клавиши табуляции для моего Samsung S10e, возвращаемые https://keycode.info:

event.key = Unidentified
event.location = 0
event.which = 229
event.code = 
...