我有一个使用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,但无法弄清楚如何应用答案。 非常感谢任何帮助。谢谢。
答案 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);
}
}