众所周知,editText是可以通过设置inputType来改变键盘默认弹起的样式。比如全数字,全字母,带.com按钮等等。
但是WebView没有这个直接的方法设置inputType。所以没法直接设置。
解决方案:
我们产品的需求是 键盘上面要带.com按钮。这个属性如果用ExditText设置就是 inputyType=“textEmailAddress”
我翻了一下源码 这个属性是用2个属性或运算得到的。
Text that will be used as an e-mail address. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_EMAIL_ADDRESS}.
我们可以在webview的onCreateInputConnect方法中设置outAttrs属性来达到目的。
override fun onCreateInputConnection(outAttrs: EditorInfo?): InputConnection? {
val connection = super.onCreateInputConnection(outAttrs)
outAttrs?.inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS
return connection
}