Как открыть клавиатуру на Android с помощью javascript без нажатия или касания?

Можно ли открывать клавиатуру на Android без клика или события касания? Например, сразу после добавления textarea к некоторому элементу? element.focus() работает для меня на iOS, но не на Android.

Ответ 1

Просто добавьте "requestFocus" в свой XML. Что-то вроде

        <EditText
        android:id="@+id/editText"
        ... />
        <requestFocus />

и onCreate()

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

Или: Это может быть просто

editText.requestFocus();
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

Ответ 2

Этот ответ основан на следующем предположении: Вы используете WebView в своем приложении для Android, чтобы вставить пользовательский Javascript для достижения определенной задачи.

Сначала создайте метод в своем классе java для Android, который будет выполнять работу с клавиатурой:

@JavascriptInterface
public void takeUserInput() {
     mWebView.setFocusable(true);
     mWebView.setFocusableInTouchMode(true);
}

В вашем Javascript вызывается метод takeUserInput(), когда вы хотите всплывать на клавиатуре.

Вы можете прочитать, как вызывать функции андроида из Javascript.

Надеюсь, это поможет!

Ответ 3

Вы должны убедиться, что режим мягкого ввода окна установлен на "всегда видимый", прежде чем запрашивать фокус на вашем элементе. Вы можете установить его, используя:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

После этого вы можете вызвать клавиатуру, запросив фокус на вашем элементе:

element.requestFocus();