Vorrei creare una Webview Android che si connetta a un sito Web tramite una connessione protetta HTTPS
con l'utilizzo delle credenziali.Impostare le credenziali su una Webview Android utilizzando la connessione HTTPS protetta
Prima difficoltà era accettare il certificato (privato), è stato risolto con post this molto utile.
Seconda difficoltà è usare le credenziali, ho trovato il post this.
(prima risposta da dparnas) che sembra funzionare piuttosto bene, ma parla della connessione HTTP
e non HTTPS
. L'ho provato, ma non funziona, ho appena raggiunto la pagina del modulo di accesso senza alcun messaggio di errore, solo il normale modulo vuoto.
Ecco il mio codice:
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");
}
}
Non sembra che ci saranno altre risposte quindi ti assegnerò la taglia.Nessun punto nel perdere :) –
"scenari di autorizzazione complicati" hahahahhah, questo è completamente standard RFC da anni fa, webview dovrebbe gestire questo ... – Nappy
mentre sono d'accordo che "dovrebbe" - e vorrei che lo farebbe! - La webview espone solo un determinato sottoinsieme del comportamento supportato dalla libreria HTTP completa ... – elijah