我有一个WebView
,该页面加载了HTML不在我控制范围内的远程网页(this one)。在该页面上,有一个电子邮件字段是必填字段,并且可能具有电子邮件验证。
当我点击该电子邮件字段以键入电子邮件地址时,将显示Android的键盘,但是当我开始键入时,它没有写任何内容。还有其他一些字段,它们也是必填字段,可能需要验证,但可以接受输入。仅电子邮件字段导致此问题。
该电子邮件字段在Android Firefox和Google Chrome中正常运行。
在我的WebView
上启用了Javascript,但没有执行任何操作。有谁知道我如何让该电子邮件字段接受输入?
答案 0 :(得分:1)
您的键盘不支持WebView
中的该字段。因此,您需要强制WebView
打开默认键盘。
您必须通过扩展WebView
类来自定义WebView
。覆盖其onCreateInputConnection()
方法:
import android.content.Context
import android.util.AttributeSet
import android.view.inputmethod.BaseInputConnection
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputConnection
import android.webkit.WebView
class QWebView : WebView
{
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int, privateBrowsing: Boolean) : super(context, attrs, defStyleAttr, privateBrowsing)
override fun onCreateInputConnection(outAttrs: EditorInfo?): InputConnection
{
return BaseInputConnection(this, false)
}
}