Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Android Webview中的Web应用与软键盘导航不一致_Javascript_Android_Ember.js_Webview_Webkit - Fatal编程技术网

Javascript Android Webview中的Web应用与软键盘导航不一致

Javascript Android Webview中的Web应用与软键盘导航不一致,javascript,android,ember.js,webview,webkit,Javascript,Android,Ember.js,Webview,Webkit,我有一个用EmberJS编写的web应用程序,通过一个本质上只是web视图的应用程序在Android设备上访问。该应用程序的目标是Android 4.1/API级别16,而我们仅限于此 有时,当使用软键盘上的“下一个”和“上一个”键在字段之间导航时,软键盘将关闭,而不会在下一个字段上重新打开。我们经常在将焦点从文本字段移动到选择字段时看到这个问题,在选择字段中,软键盘应该替换为选择对话框,然而,我们看到的只是从文本字段移动到文本字段 如何纠正此行为并使软键盘/选择对话框始终显示?下面是我根据我找

我有一个用EmberJS编写的web应用程序,通过一个本质上只是web视图的应用程序在Android设备上访问。该应用程序的目标是Android 4.1/API级别16,而我们仅限于此

有时,当使用软键盘上的“下一个”和“上一个”键在字段之间导航时,软键盘将关闭,而不会在下一个字段上重新打开。我们经常在将焦点从文本字段移动到选择字段时看到这个问题,在选择字段中,软键盘应该替换为选择对话框,然而,我们看到的只是从文本字段移动到文本字段

如何纠正此行为并使软键盘/选择对话框始终显示?下面是我根据我找到的其他堆栈溢出/开发博客已经尝试过的事情列表

添加了一个触控式监听器以关注web视图。这没有明显的效果

browser.setOnTouchListener(new View.OnTouchListener() { 

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) { 
            case MotionEvent.ACTION_DOWN: 
            case MotionEvent.ACTION_UP: 

                if (!v.hasFocus()) { 
                    v.requestFocus(); 
                } 

                break; 
            } 

        return false; 

        }
    });
我在AndroidManifest.xml中添加了以下内容,但这只是导致视图端口不移动到具有焦点的字段

android:windowSoftInputMode="adjustNothing"
我编写了一个可以直接从JavaScript调用的接口方法,JavaScript试图显示软输入键盘。我们的测试人员说,这在总体上提高了可靠性,但在选择下拉列表和文本输入字段之间仍然存在问题

爪哇

JavaScript/Ember

非常感谢您的帮助

更新

一些可能有用的附加信息,再加上试图让问题更清楚一些

我们的客户正在使用Galaxy Note II作为他们在安卓4.1上运行的首选设备。我们的应用程序使用API级别16,因此我们只使用旧的Webkit Web视图,而不是在4.4/API级别19中推出的Chromium实现

public void showSoftKeyboard() {                
    InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);

    imm.showSoftInput(browser, 0);
}
if (window.jsinterface) {
    window.jsinterface.showSoftKeyboard();
}