是否可以在webview应用程序中定义建议列表?

时间:2012-04-27 16:02:35

标签: android cordova webview textinput

在基于webview的应用程序的文本类型输入元素中输入字符串时,虚拟键盘上方会显示可能的单词列表。

在我的应用程序中,不允许用户输入任意单词,而只允许来自数据库的单词和短语是合法的。

所以,我想设置我的phonegap应用程序中的单词列表,并禁用自动创建此列表。

问:这可以创建列表 - 以及如何创建?

(这是一个phonegap应用程序,我正在测试Android,但这可能是不同平台上webview /文本输入字段的问题)

修改:
刚刚发现(是的,我是Android开发的新手),可以通过以下方式禁用建议列表:设置/语言和键盘/ Android键盘/显示建议。

但是,当然,此设置应仅针对应用内部,应用内部,无需用户互动,也不会更改应用外的任何内容。

有机会完成这项工作吗?

编辑2:
我尝试使用它,而不是禁用建议列表。 InputMethodManager的displayCompletions方法听起来很有希望,所以我尝试了以下代码:

...
// data member
InputMethodManager mInputMethodManager = null;
...

    ...
    // initialized
    mInputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
    ...

public void showSuggestions(String[] words) {
    Log.d(TAG, "showSuggestions (in Java!): " + words.length);  // yes, this code is executed
    CompletionInfo[] completions = new CompletionInfo[words.length];
    for (int i=0; i<words.length; i++) {
        completions[i] = new CompletionInfo(i, i, words[i]);    // no idea, what the 2 extra integers mean
    }
    mInputMethodManager.displayCompletions(mView, completions);
}

只要有新列表可用(在输入更改且服务器已回答请求之后),就会执行该方法。

然而,一切都没有改变 - 内置机制仍在做不利的工作。

2 个答案:

答案 0 :(得分:0)

如果存在不同的虚拟键盘变体(swype和其他),则可能没有可能的单词列表。因此,我认为没有显示此列表的通用解决方案。

有一个参数http://developer.android.com/reference/android/widget/TextView.html#attr_android:editorExtras editorExtras定义了传递给输入法实现的参数,但我不确定你将如何在PhoneGap应用程序中使用它

修改

我想您可以扩展默认输入法并使其不显示建议 inputmethod reference http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html

  

提供自定义软件键盘

     

如果您有兴趣开发自己的软件键盘,我们强烈推荐以下参考:

     

IME是作为Android服务实现的。首先回顾一下名为android.inputmethodservice和android.view.inputmethod的Android软件包,它们可用于实现自定义输入方法。       Android SDK中的SoftKeyboard示例应用程序提供了软件键盘的实现。       关于屏幕输入方法和创建输入法的Android Developer技术文章。

在此处找到http://e-university.wisdomjobs.com/android/chapter-946-288/handling-advanced-user-input.html

答案 1 :(得分:0)

为什么不在jQuery UI中使用类似auto auto的内容。

http://jqueryui.com/demos/autocomplete/

此外,在JavaScript中自己动手并不难。

http://www.javascript-examples.com/autocomplete-demo/