Как передать идентификатор и пароль пользователя gmail в веб-браузер для входа в Gmail?Пропустить идентификатор пользователя и пароль gmail для webView в Android
0
A
ответ
0
Для Gmail, поскольку gmail прошел https несколько месяцев назад, нет простого способа. WebView не может обрабатывать базовую аутентификацию при использовании HTTPS-соединения.
Не грустите, есть обходное решение. Вы можете использовать функцию loadUrl из WebView:
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.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() ;
}
});
String up = mUserName +":" +mPassC;
String authEncoded = new String(Base64.encodeBase64(up.getBytes()));
String authHeader = "Basic " +authEncoded;
Map<String, String> headers = new HashMap<String, String>();
headers.put("Authorization", authHeader);
mWebView.loadUrl("https://myhost.com/secured_area", headers);
любезность: Set credentials on an Android Webview using secured HTTPS connection
1
Я хотел бы добавить, что нагрузка яваскрипта функции должно быть сделано, когда HTML загружен. Для того, чтобы контролировать, что вы можете использовать следующее:
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/test.html");
webview.setWebViewClient(new WebViewClient(){
public void onPageFinished(WebView view, String url){
webview.loadUrl("javascript:init('" + theArgumentYouWantToPass + "')");
}
});
test.html
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
hola
adios
</body>
<script type="text/javascript">
function init(val){
// Do whatever you want with your parameter val
}
</script>
</html>
На самом деле я хочу передать учетные данные в WebView для пользователя системы автоматически –
Ваш вопрос очень неясно. Вы хотите передать пароль пользователя gmail для учетной записи пользователя android, или вы хотите ввести пользователя в систему gmail в своем веб-браузере, а затем получить его идентификатор пользователя и передать его? Если у вас есть намерение собирать данные, имейте в виду, что это незаконно. –
Пользователю необходимо сохранить свои учетные данные, а затем, когда пользователь хочет, чтобы он мог войти в свою нужную учетную запись на основе своих дополнительных учетных данных, я хочу знать, возможно ли это? потому что для сохранения учетных данных и входа в систему требуется одно приложение. Приложение «LoginBox». –