Chciałbym utworzyć widok internetowy Android, który łączy się z witryną poprzez bezpieczne połączenie HTTPS
przy użyciu poświadczeń.Ustaw poświadczenia w widoku internetowym systemu Android za pomocą bezpiecznego połączenia HTTPS
Pierwsza trudność polegała na zaakceptowaniu certyfikatu (prywatny), został on rozwiązany dzięki bardzo przydatnemu wpisowi w postaci this.
Druga trudność polega na użyciu poświadczeń, znalazłem post this.
(pierwsza odpowiedź od dparnas), która wydaje się dobrze z nim radzić, ale mówi o połączeniu HTTP
, a nie HTTPS
. Próbowałem, ale to nie działa, po prostu osiągam stronę formularza logowania bez żadnego komunikatu o błędzie, tylko normalny pusty formularz.
Oto mój kod:
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");
}
}
Nie wygląda na to, że będą jeszcze jakieś odpowiedzi, więc zamierzam przyznać ci nagrodę.Nie ma sensu go tracić :) –
"Skomplikowane scenariusze autoryzacji" hahahahhah, to jest całkowicie standardowe RFC sprzed lat, przeglądanie powinno obsłużyć to ... – Nappy
, podczas gdy ja zgadzam się z tym "powinienem" - i żałuję, że tak! - tylko przeglądarka udostępnia pewien podzbiór zachowań, które obsługuje pełna biblioteka HTTP ... – elijah