在webview中显示自动对焦键盘

时间:2014-07-23 05:52:10

标签: android cordova webview

我有一个使用webview的Android应用程序。 我使用的几种形式在第一个元素上具有自动对焦功能。 我想要的是在加载表单时显示相关的键盘。活动中的代码是:

public class MyActivity extends DroidGap {
/**
 * Called when the activity is first created.
 */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //load the main app
    loadUrl("file:///android_asset/www/index.html");
}

@Override
public void init() {
    final String version = getVersion();
    CordovaWebView webView = new CordovaWebView(this);
    init(webView, new CordovaWebViewClient(this, webView) {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            super.onPageFinished(view, url);
            boolean redirected = false;
            //If the page you're accessing is the login page
            if (url.endsWith("/Login")) {
                //redirect to root page with query string
                appView.loadUrl(url + "?version=" + version));
                redirected = true;
            }

            return redirected;
        }
    }, new CordovaChromeClient(this, webView));
    }
}

基本上,在应用程序的索引页面上方的代码中发生了什么。当我单击登录按钮时,应用程序版本将附加到加载的URL(出于无关原因),并显示登录页面。 当页面加载时,我可以在字段内看到光标,但键盘不会显示,直到我按下字段。

我看过this question,但无法弄清楚如何应用答案。 非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

我最终使用

                @Override
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);
                    // Display the keyboard automatically when relevant
                    if (view.getTitle().equals("Login")) {
                        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                        imm.showSoftInput(view, 0);
                    }
                }