2014-07-23 4 views
0

J'ai une application Android qui utilise webview. Plusieurs formulaires que j'utilise ont un autofocus sur le premier élément. Ce que je veux, c'est que le clavier correspondant s'affiche lorsque le formulaire est chargé. Le code de l'activité est:Afficher le clavier sur l'autofocus dans Webview

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)); 
    } 
} 

Fondamentalement, ce qui se passe dans le code au-dessus de la page d'index de l'application est chargé. Lorsque je clique sur le bouton de connexion, la version de l'application est ajoutée à l'URL chargée (pour des raisons indépendantes de la volonté) et la page de connexion est affichée. Lorsque la page se charge, je peux voir le curseur dans le champ mais le clavier ne s'affiche pas tant que je n'ai pas appuyé sur le champ. J'ai regardé this question mais je n'ai pas compris comment appliquer les réponses. Toute aide est grandement appréciée merci.

Répondre

0

Je fini par utiliser

   @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); 
        } 
       } 
Questions connexes