Android-电子邮件InputField没有接受用户输入

时间:2019-05-04 03:54:50

标签: android android-webview

我有一个WebView,该页面加载了HTML不在我控制范围内的远程网页(this one)。在该页面上,有一个电子邮件字段是必填字段,并且可能具有电子邮件验证。

当我点击该电子邮件字段以键入电子邮件地址时,将显示Android的键盘,但是当我开始键入时,它没有写任何内容。还有其他一些字段,它们也是必填字段,可能需要验证,但可以接受输入。仅电子邮件字段导致此问题。

该电子邮件字段在Android Firefox和Google Chrome中正常运行。

在我的WebView上启用了Javascript,但没有执行任何操作。有谁知道我如何让该电子邮件字段接受输入?

1 个答案:

答案 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)
    }
}