Как активировать фокус на поле ввода текста в WebView после загрузки страницы?
Я пытаюсь загрузить страницу входа в Facebook в WebView
это работает на Nexus Player. Это устройство выводит на телевизор и, как таковое, не имеет сенсорного экрана.
Я могу получить страницу входа для загрузки без проблем, но пользователь не может выбрать текстовые поля электронной почты и пароля для ввода своих учетных данных.
Нажатие вверх / вниз / влево / вправо на пульте Nexus Player приводит к прокрутке веб-страницы, но я не могу взаимодействовать ни с чем на самой странице.
Вещи, которые я пробовал:
WebView.requestFocus()
после загрузки страницы (отсюда: /questions/2959813/pochemu-android-webview-otkazyivaetsya-ot-vvoda-dannyih-polzovatelem/2959828#2959828)- Имитация сенсорного ввода после загрузки страницы (здесь: /questions/371909/kak-smodelirovat-sensornoe-sobyitie-v-android/371922#371922)
- Подключите мышь к USB-порту на Nexus Player. Это сработало, и я смог успешно войти в систему, но не могу ожидать, что конечный пользователь моего приложения сделает то же самое.
1 ответ
Решение
Решение состояло в том, чтобы выполнить следующий JavaScript на моем WebView
в onPageFinished()
:
webView.loadUrl("javascript:document.getElementsByName('email')[0].focus();");
Очевидно, что это будет работать только на экране входа в Facebook, поскольку у них есть текстовое поле с именем "электронная почта".