Android WebView HTML能否影响键盘或键盘功能?

art*_*ung 15 android android-ui android-webview android-softkeyboard

我有一个带有信用卡输入表格的webview(带有标准<input type="text" />字段).在不同版本的Android中,我会得到不同的键盘.Kit-Kat似乎在表单内部不显示Prev/ Next键.

  1. 在网络方面,我对此有任何影响吗?
  2. 如果没有,我应该向Android方面的开发者推荐什么?

没有Prev/的示例Next:

相同的webview,带Prev/ Next:

在此输入图像描述

Bra*_*ell 18

您可以从WebView控制键盘,但正如其他答案所示,它可能无法用于所有键盘.尽管如此,我通常发现大多数主流键盘都实现了我想要的行为.

WebView有一个名为的方法onCreateInputConnection.您可以挂钩到此方法并添加(和/或删除)标志inputType和/或imeOptions.有很多标志可供你使用.

查看EditorInfo选项,特别是IME_FLAG_NAVIGATE_NEXTIME_FLAG_NAVIGATE_PREVIOUS.请参阅下面的用法(从键盘选项中删除prev/next标志):

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
    outAttrs.imeOptions = outAttrs.imeOptions & ~EditorInfo.IME_FLAG_NAVIGATE_NEXT &
                ~EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS; 
    return inputConnection;
}
Run Code Online (Sandbox Code Playgroud)

您可以尝试的另一件事是使用InputType标志隐藏整个建议栏TYPE_TEXT_FLAG_NO_SUGGESTIONS.请参阅下面的示例(将"无建议"标志添加到输入类型):

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
    outAttrs.inputType = outAttrs.inputType | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
    return inputConnection;
}
Run Code Online (Sandbox Code Playgroud)

还有许多其他标志可用于直接从WebView自定义IME.将开发人员引用到链接页面,您应该能够实现大多数键盘上的行为.