Android - Email InputField 不接受用户输入
Android - Email InputField is not taking user input
我有一个 WebView
加载远程网页 (this one),其 HTML 不受我控制。在那个页面上,有一个电子邮件字段是必需的,也许它有电子邮件验证。
当我点击该电子邮件字段以输入电子邮件地址时,Android 的键盘会出现,但当我开始输入时,它不会在其中输入任何内容。还有一些其他字段,它们也是必需的并且可能有验证,但它们可以很好地接受输入。只有电子邮件字段导致此问题。
该电子邮件字段在 Android Firefox 和 Google Chrome.
中工作正常
Javascript 在我的 WebView
上启用,但它什么也没做。有谁知道我怎样才能使该电子邮件字段接受输入?
您的键盘不支持 WebView
中的该字段。所以你需要强制WebView
打开默认键盘。
您必须通过扩展 WebView
class 来自定义 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)
}
}
我有一个 WebView
加载远程网页 (this one),其 HTML 不受我控制。在那个页面上,有一个电子邮件字段是必需的,也许它有电子邮件验证。
当我点击该电子邮件字段以输入电子邮件地址时,Android 的键盘会出现,但当我开始输入时,它不会在其中输入任何内容。还有一些其他字段,它们也是必需的并且可能有验证,但它们可以很好地接受输入。只有电子邮件字段导致此问题。
该电子邮件字段在 Android Firefox 和 Google Chrome.
中工作正常Javascript 在我的 WebView
上启用,但它什么也没做。有谁知道我怎样才能使该电子邮件字段接受输入?
您的键盘不支持 WebView
中的该字段。所以你需要强制WebView
打开默认键盘。
您必须通过扩展 WebView
class 来自定义 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)
}
}