Я столкнулся с этой проблемой, когда асинхронные функции не выполняются, когда в браузере Android открыта программная клавиатура.
Например:
<input type='text' id='foo'/>
....
document.getElementById("foo").addEventListener("keyup", function() {
window.setTimeout(function() { alert("1"); }, 20);
}, false);
Вы никогда не увидите предупреждение, если вы будете сосредоточены на вводе текста. Это верно и для обратных вызовов xhr. Если вы попытаетесь сделать ajax-запрос, запрос будет отправлен, но обратный вызов oncomplete никогда не будет запущен до тех пор, пока вы не введете в текстовое поле другой символ.
Кто-нибудь знает обходной путь? Вы можете видеть, что у Google, очевидно, есть рабочий пример с их поисковыми предложениями, хотя я пока не смог выяснить, что именно является их решением, посмотрев на минимизированный / запутанный источник.
Любое понимание приветствуется, спасибо