Android键盘在验证后在webview中无法工作。
Android键盘在验证后在webview中无法工作。
我有一个安卓应用程序,在webview中打开了一个Jquery移动站点。该页面包含大约20个表单字段。键盘工作正常,我可以在一个带有maxlength=5属性的input[type=number]框中输入,直到我输入6位数。之后,键盘停止工作。当我点击一个元素,它获得焦点并弹出键盘,但是键盘不会获取键盘输入的值。可能是什么问题?如何解决?
主活动:
mWebview = new WebView(this);
mWebview.getSettings().setJavaScriptEnabled(true);
mWebview.getSettings().setGeolocationEnabled(true);
mWebview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mWebview.getSettings().setSupportMultipleWindows(true);
mWebview.getSettings().setCacheMode(mWebview.getSettings().LOAD_NO_CACHE);
mWebview.addJavascriptInterface(new WebAppInterface(this), "Android");
mWebview.loadUrl(WebUrl);
setContentView(mWebview);
清单XML:
webview中的HTML:
日志:
05-03 12:58:01.593: I/SurfaceTextureClient(5044): [0x53289e48] frames:4, duration:1.222000, fps:3.271073
05-03 12:58:02.570: E/SpannableStringBuilder(5044): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
05-03 12:58:02.571: E/SpannableStringBuilder(5044): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
05-03 12:58:02.572: V/InputMethodManager(5044): Starting input: view=android.webkit.WebView@41da5668
05-03 12:58:02.572: V/InputMethodManager(5044): Starting input: tba=android.view.inputmethod.EditorInfo@41ddf148 ic=android.webkit.WebViewClassic$WebViewInputConnection@41e0d6f0
05-03 12:58:02.573: V/InputMethodManager(5044): START INPUT: android.webkit.WebView@41da5668 ic=android.webkit.WebViewClassic$WebViewInputConnection@41e0d6f0 tba=android.view.inputmethod.EditorInfo@41ddf148 controlFlags=#0
05-03 12:58:02.574: V/InputMethodManager(5044): Starting input: Bind result=InputBindResult{com.android.internal.view.IInputMethodSession$Stub$Proxy@41dada48 com.android.inputmethod.latin/.LatinIME #166}
05-03 12:58:02.574: W/IInputConnectionWrapper(5044): endBatchEdit on inactive InputConnection
05-03 12:58:02.710: I/SurfaceTextureClient(5044): [0x53289e48] frames:3, duration:1.111000, fps:2.699259
05-03 12:58:04.126: I/SurfaceTextureClient(5044): [0x53289e48] frames:3, duration:1.421000, fps:2.109934
我在iball slide(4.0.3)中没有这个问题,在HCL me connect-v3(4.1.2)中有问题。由于这是我们员工使用的私人应用程序,我们将在这些平板电脑上使用它。
问题原因:布局中的TabHost的子视图可能会干扰webview的焦点。
解决方法:将这些视图的focusable属性设置为"false"。
代码示例:
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) { tabHost.getTabWidget().getChildAt(i).setFocusable(false); }
补充信息:作为一个前端开发人员,我对原生Android编程完全不熟悉。我在Nexus设备上也遇到了同样的问题,但在Moto G和Moto E上没有。由于我使用的是最新版本的Cordova,我应该怎么办?抱歉,我从未使用过Cordova FW,但肯定有相同的API设置焦点状态的方法。