缺少焦点光标在输入字段混合android cordova webview上

时间:2015-06-23 18:48:22

标签: android cordova webview

我们在Cordova上安装了android混合应用程序,在其中创建了带有cordova webview的自定义inappbrowser来显示内容。在Android棒棒糖设备中,当用户选择输入字段时,弹出键盘,用户可以进入测试,但输入字段中没有光标。在棒棒糖前不会发生这种情况。我尝试了下面的选项,这也偶尔发生,我有时会得到关注,但大多数时候它都无法正常工作

inAppWebView.getSettings().setJavaScriptEnabled(true);
inAppWebView.requestFocus(View.FOCUSABLES_TOUCH_MODE);

inAppWebView.requestFocus(View.FOCUSABLES_ALL);

inAppWebView.requestFocus(View.FOCUS_DOWN);

inAppWebView.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    switch (event.getAction()) {
                        case MotionEvent.ACTION_DOWN:
                        case MotionEvent.ACTION_UP:
                            if (!v.hasFocus()) {
                                v.requestFocus();
                            }
                            break;
                    }
                    return false;
                }
            });

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

在经历了回购历史的一些思考和努力之后,我们终于把它钉在了一起。修好了。

在初始化插件时,我们在WebView上执行了一些javascript。我们正在使用'evaluateJavascript'来执行javascript(这在Lollipop上工作,而不是在KitKat btw上工作),但是不知怎的有使插入符号消失的副作用。使用'loadUrl'后,它再次起作用。

在javascript中我们确实在窗口中添加了一个自定义属性(HD_APP),所以没有任何东西应该导致这样的副作用。正如您在屏幕截图中看到的那样,输入不再用css的“:focus”标识。

希望这会有所帮助..

comparison of the input css of a working example (left) and the one without a caret (right)

答案 1 :(得分:0)

虽然现在可能已经过时,但可以在 https://issues.apache.org/jira/browse/CB-11248找到解决方案

基本上,您需要将onPageFinished更改为

public void onPageFinished(WebView view, String url) {
  super.onPageFinished(view, url);
  view.clearFocus();
  view.requestFocus();

}

答案 2 :(得分:0)

对我造成问题的原因是,我在加载任何页面之前都叫evaluateJavascript

在确定发送页面之前已准备好使用JS的页面之后,问题消失了。