使用jQueryMobile在Android浏览器应用上将软键盘默认设置为数字

时间:2012-06-29 09:06:04

标签: android android-webview android-softkeyboard numeric

我希望能够在数字模式下使用Javascript打开Android软键盘。

有很多帖子关于如何打开软键盘以及如何将其数据类型设置为数字,但在我的情况下,有些情况阻止我组合这些解决方案。

目前,如果用户手动点击输入字段,则数字软键盘会正确显示。 我还想出了如何使用java方法.addJavascriptInterface()创建一个打开和关闭键盘的Javascript函数。这主要是在这段代码中:

public class KeyBoard {
        private WebView mAppView;
        private DroidGap mGap;

        public KeyBoard(DroidGap gap, WebView view)
        {
            mAppView = view;
            mGap = gap;
        }

        public void showKeyBoard() {
            InputMethodManager mgr = (InputMethodManager) mGap.getSystemService(Context.INPUT_METHOD_SERVICE);
            // only will trigger it if no physical keyboard is open
            mgr.showSoftInput(mAppView, InputMethodManager.SHOW_IMPLICIT);

            ((InputMethodManager) mGap.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(mAppView, 0); 
        }

        public void hideKeyBoard() {
            InputMethodManager mgr = (InputMethodManager) mGap.getSystemService(Context.INPUT_METHOD_SERVICE);
            mgr.hideSoftInputFromWindow(mAppView.getWindowToken(), 0);
        }
}

问题在于,当我使用这个自定义Javascript-to-Java命令时,键盘始终显示为Qwerty,即使该字段的当前值已经是数字并且它具有type = number标记。

我试过这些: - 在输入元素上设置type = number属性。 - 始终准备好数值(在调用软键盘之前将值设置为零) - 在调用软键盘之前,将焦点设置在输入上(并选择其值) - 我已经阅读了关于设置TextView / EditText属性的解决方案,但由于我的应用程序是一个浏览器应用程序,我可以操作的唯一Android对象是WebView。 - Android目前无法在Java WebView上设置默认输入法。

使用Javascript-to-Java打开软键盘的麻烦在于它是一个“通用”命令,即它没有专门与输入绑定。因此,软键盘以其默认模式打开,而不考虑其键盘将被发送的元素。

0 个答案:

没有答案