2016-11-01 60 views
0

我的Android应用程序与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

仅当三星键盘的预测文本已打开且仅适用于Android 6+时,才会出现此问题。 我知道它可能是集成的浏览器和三星键盘之间的不兼容,但我不能要求我的所有用户关闭它只能用于我的应用程序。所以我想对此有一个解决方法。

预先感谢任何帮助

+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 AndroidCentralgabrielmaldi指出,有another post引用该问题。

从第一篇文章开始,WebView版本55.0.2883.36解决了这个问题。