2015-06-23 4 views
3

У нас есть Android-приложение для Android с Cordova, где создаются пользовательские inappbrowser с веб-просмотром cordova, чтобы показать контент. В Android lollipop устройствах, когда пользователь выбирает поле ввода, клавиатура появляется, и пользователь может ввести тест, но в поле ввода нет курсора. Это не происходит в pre lollipop. Я попытался ниже вариантов, и это происходит эпизодически, я иногда получаю фокус, но в большинстве случаев это не работаетОтсутствует курсор фокуса на поле ввода hybrid android cordova webview

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

То же самое здесь. Забавно, что это происходит только внутри нашего приложения Cordova, когда мы обращаемся к тому же источнику из браузера по телефону, он работает отлично, и появляется карет. – Toubey

ответ

0

После долгих размышлений и усилий, просматривающих историю репо, мы, наконец, прибивали его вниз. & исправил это.

При инициализации плагина мы выполнили некоторый javascript в WebView. Мы используем «ОцениваемJavascript», чтобы выполнить javascript (это работает на Lollipop, а не на KitKat), но это как-то вызвало побочный эффект от ухода каретки. После использования 'loadUrl' вместо этого он снова работал.

В javascript мы добавили в окно пользовательский атрибут (HD_APP), поэтому ничего, что могло бы вызвать такой побочный эффект. Как вы можете видеть на скриншоте, вход больше не идентифицируется с помощью «: focus» css.

Надеется, что это помогает ..

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

0

Хотя теперь, вероятно, seomewhat устарели, то решение может быть найдено в https://issues.apache.org/jira/browse/CB-11248

В принципе, вам нужно изменить onPageFinished к

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

}

+0

Проблема в версии 1.6.4 –