当我在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+中才会出现此问题。 我知道它可能是集成浏览器和三星键盘之间的不兼容,但我不能要求所有用户将其关闭仅用于我的应用程序。所以我想有一个解决方法。
事先感谢任何帮助
答案 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;
}
}
但是,我认为禁用整个应用程序的预测文本会损害用户体验。也许你可以在EditorInfo outAttrs
找到一些东西来识别有问题的字段?
答案 1 :(得分:0)
问题是由尚未修复的Android系统WebView更新引起的 post on AndroidCentral指向的gabrielmaldi还有another post引用该问题。
截至第一篇文章,WebView版本55.0.2883.36解决了这个问题。