Ich möchte ein Android-Webview erstellen, das über eine gesicherte HTTPS
-Verbindung mit der Verwendung von Anmeldeinformationen eine Verbindung zu einer Website herstellt.Anmeldeinformationen in einem Android Webview mit gesicherter HTTPS-Verbindung festlegen
Erste Schwierigkeit war es, das Zertifikat (privat) zu akzeptieren, es wurde mit this sehr nützliche Post gelöst.
Zweite Schwierigkeit ist, Anmeldeinformationen zu verwenden, fand ich this Post.
(erste Antwort von dparnas), die ziemlich gut damit zu tun scheint, aber es spricht über HTTP
Verbindung und nicht HTTPS
. Ich habe es versucht, aber es funktioniert nicht, ich erreiche nur die Anmeldeseite ohne Fehlermeldung, nur die normale leere Form.
Hier ist mein 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");
}
}
Es sieht nicht so aus, als ob es mehr Antworten geben wird, also werde ich Ihnen das Kopfgeld geben.Kein Punkt, es zu verlieren :) –
"komplizierte Autorisierungsszenarien" hahahahhah, das ist völlig Standard RFC von Jahren, sollte Webview damit umgehen ... – Nappy
während ich stimme es "sollte" - und ich wünschte, es wäre! - webview stellt nur eine bestimmte Teilmenge des Verhaltens zur Verfügung, das die vollständige HTTP-Bibliothek unterstützt ... – elijah