我们在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;
}
});
有什么建议吗?
答案 0 :(得分:0)
在经历了回购历史的一些思考和努力之后,我们终于把它钉在了一起。修好了。
在初始化插件时,我们在WebView上执行了一些javascript。我们正在使用'evaluateJavascript'来执行javascript(这在Lollipop上工作,而不是在KitKat btw上工作),但是不知怎的有使插入符号消失的副作用。使用'loadUrl'后,它再次起作用。
在javascript中我们确实在窗口中添加了一个自定义属性(HD_APP),所以没有任何东西应该导致这样的副作用。正如您在屏幕截图中看到的那样,输入不再用css的“:focus”标识。
希望这会有所帮助..
答案 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的页面之后,问题消失了。