Définir les informations d'identification sur une Webview Android à l'aide de la connexion HTTPS sécurisée

Je voudrais créer une Webview Android qui se connecte à un site web par le biais d'une facilité de HTTPS relation avec l'utilisation des informations d'identification.

Première difficulté a été d'accepter le certificat (privé), il a été résolu avec cette très utile post.

Deuxième difficulté est d'utiliser les informations d'identification, j'ai trouvé cette post.

(première réponse de dparnas) qui semble traiter assez bien avec elle, mais il parle de HTTP de connexion et de ne pas HTTPS. J'ai essayé, mais il ne marche pas, je viens d'atteindre le formulaire de connexion à la page sans afficher de message d'erreur, juste la normale formulaire vierge.

Voici mon code:

import android.app.Activity;
import android.net.http.SslError;
import android.os.Bundle;
import android.webkit.HttpAuthHandler;
import android.webkit.SslErrorHandler;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class ConnectorWebView extends Activity {
  WebView mWebView;
  String mUsrName;
  String mPassC;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.connwebview);

    //Getting info from Intent extras
    //Get it if it s different from null
    Bundle extras = getIntent().getExtras();            
    mUsrName = extras != null ? extras.getString("username") : null;
    mPassC = extras != null ? extras.getString("passcode") : null;

    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.setHttpAuthUsernamePassword("myhost.com", "myrealm", mUsrName, mPassC);

    mWebView.setWebViewClient(new WebViewClient() {
        @Override 
        public void onReceivedHttpAuthRequest  (WebView view, HttpAuthHandler handler, String host, String realm){ 
          handler.proceed(mUsrName, mPassC);
        } 

        public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
          handler.proceed() ;
        }
      });

    mWebView.loadUrl("https://myhost.com/secured_area");
  }
}

OriginalL'auteur Mbolland | 2010-12-27