我有一个网络视图,我在登录屏幕上手动显示键盘并专注于输入字段。
Field:
<input type="password" maxlength="4" pattern="[0-9]*" id="pin">
聚焦并显示键盘:
webView.requestFocus(View.FOCUS_DOWN);
webView.loadUrl("javascript:document.getElementById('pin').focus();");
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(webView, InputMethodManager.SHOW_IMPLICIT);
登录屏幕仅包含 PIN 样式代码字段,用户将在其中输入 4 位数字。问题是默认情况下它显示常规字母键盘,而我希望它显示数字键盘。我见过很多使用 EditText 的属性来控制键盘类型的示例,例如
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
EditText.setInputType(InputType.TYPE_CLASS_PHONE); [select Input type as according to ur requirement]
mgr.showSoftInput(EditText, InputMethodManager.SHOW_IMPLICIT);
但是是否可以告诉键盘本身在 WebView 上显示什么类型或设置属性?
这条路线对我有用。创建一个子类WebView
,并重写该方法onCreateInputConnection
。当输入字段在WebView
被选中,它使您有机会自定义事件的处理方式。这是一个例子:
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
BaseInputConnection ic = new BaseInputConnection(this, true);
outAttrs.inputType = InputType.TYPE_CLASS_NUMBER; // Tells the keyboard to show the number pad
return ic;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)