【问题标题】:How to open keyboard on Android by javascript without click or touch event?如何在没有点击或触摸事件的情况下通过 javascript 在 Android 上打开键盘?
【发布时间】:2015-01-08 08:00:30
【问题描述】:

是否可以在没有点击或触摸事件的情况下在 Android 上打开键盘?例如,在将 textarea 附加到某个元素之后? element.focus() 在 iOS 上对我有效,但在 Android 上无效。

【问题讨论】:

  • @Vixed 您应该编辑问题以使其更适合您自己的问题。目前尚不清楚它是用于 Java 中的 Android 本机应用程序(如当前答案所假设的那样),还是用于 JavaScript 中的混合应用程序,例如使用科尔多瓦。
  • 请说明您的应用是使用 java 还是混合应用。
  • Webview javascript (jQuery) @ghybs

标签: javascript android keyboard click touch


【解决方案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】:

    此答案基于以下假设: 你在你的 android 应用程序中使用 WebView 来插入自定义 Javascript 来完成某个任务

    首先在你的 Android java 类中创建一个方法来完成弹出键盘的工作:

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

    只要您想弹出键盘,请在您的 Javascript 中调用 takeUserInput() 方法。

    您可以阅读如何call android functions from Javascript

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      在请求关注您的元素之前,您必须确保窗口​​的软输入模式设置为“始终可见”。 您可以使用以下方式设置它:

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

      之后,您可以通过请求关注您的元素来调出键盘:

      element.requestFocus();
      

      【讨论】:

        【解决方案4】:

        据我所知,您无法在不使用输入的情况下打开键盘。尝试使用虚拟键盘阅读以下内容。

        Show virtual keyboard on mobile phones in javascript

        【讨论】:

          猜你喜欢
          • 2021-01-17
          • 2018-04-02
          • 2018-09-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-30
          • 1970-01-01
          • 2019-12-01
          相关资源
          最近更新 更多