2016-11-01 10 views
0

У меня проблема с моим приложением Android при использовании с клавиатурой Samsung на Android 6. Когда пользователь вводит специальный символ, например, точку или звездочку, следующий ключ заменяется последним вводом голец.
Пример:Клавиатура Android, повторяющая специальные символы

Когда пользователь:

mobile.abc 

Применение получает:

mobile..bc 

Кроме того, я записал скринкаст с поведением: youtube video.

Мое приложение построено с помощью Rhodes/Rhomobile и использует встроенный браузер webkit, который является пользовательским агентом: Mozilla/5.0 (Linux; Android 6.0.1; SM-A510M Build/MMB29K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/54.0.2840.68 Mobile Safari/537.36.

Проблема возникает только при включении интеллектуального текста клавиатуры Samsung и только в Android 6+. Я знаю, что это может быть несовместимость между встроенным браузером и клавиатурой samsung, но я не могу попросить всех моих пользователей отключить его только для использования с моим приложением. Поэтому я хотел бы иметь обходное решение для этого.

Спасибо заранее по любой помощи

+0

'Спасибо заранее за помощь. Заранее благодарность не получит помощи, конечно. – greenapps

ответ

1

Это кажется bug. Будем надеяться на исправление.

В то же время, вы можете отключить предиктивного ввода текста таким образом:

public class NoSuggestionsWebView extends WebView { 
    public NoSuggestionsWebView(Context context) { 
     super(context); 
    } 

    public NoSuggestionsWebView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public NoSuggestionsWebView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) { 
     InputConnection ic = super.onCreateInputConnection(outAttrs); 

     outAttrs.inputType &= ~EditorInfo.TYPE_MASK_VARIATION; /* clear VARIATION type to be able to set new value */ 
     outAttrs.inputType |= InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD; /* WEB_PASSWORD type will prevent form suggestions */ 

     return ic; 
    } 
} 

Source

Однако, я думаю, что отключение интеллектуального ввода текста для всего приложения повредит UX. Возможно, вы можете найти что-то в EditorInfo outAttrs, чтобы определить проблемные поля?

+0

У меня нет доступа к этим настройкам и классам, потому что я использую фреймворк с этими настройками закрытыми. Но спасибо большое за вашу помощь. –

0

Проблема была вызвана обновлением системы Android WebView, которая еще не была исправлена.
Далее post on AndroidCentral указал gabrielmaldi, есть another post, ссылающийся на вопрос.

Начиная с первого поста, проблема WebView 55.0.2883.36 устраняет проблему.