Android键盘重复特殊字符

时间:2016-11-01 11:59:15

标签: android keyboard samsung-mobile rhomobile

当我在Android 6上使用Samsung键盘时,我的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 Keyboard的预测文本并且仅在Android 6+中才会出现此问题。 我知道它可能是集成浏览器和三星键盘之间的不兼容,但我不能要求所有用户将其关闭仅用于我的应用程序。所以我想有一个解决方法。

事先感谢任何帮助

2 个答案:

答案 0 :(得分: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

但是,我认为禁用整个应用程序的预测文本会损害用户体验。也许你可以在EditorInfo outAttrs找到一些东西来识别有问题的字段?

答案 1 :(得分:0)

问题是由尚未修复的Android系统WebView更新引起的 post on AndroidCentral指向的gabrielmaldi还有another post引用该问题。

截至第一篇文章,WebView版本55.0.2883.36解决了这个问题。