Как мне написать веб-просмотр для автоматического входа в мою учетную запись Yahoo?
Я пишу тестовое приложение для веб-просмотра, в котором я собираюсь открыть свою почту Yahoo, как только я запускаю представление приложения. Это будет веб-просмотр, где я хочу жестко указать свое имя пользователя и пароль. Я знаю, что Yahoo использует метод get вместо post. Есть ли способ, которым я могу достичь этого? Вот мой код до сих пор:
Webview webview = (WebView) getView().findViewById(R.id.mywebview);
webview.setBackgroundColor(0);
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new webClient());
String url = "https://www.yahoomail.com";
webview.loadUrl(url);
private class webClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
view.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url) {
final Animation fade = new AlphaAnimation(0.0f, 1.0f);
fade.setDuration(200);
view.startAnimation(fade);
view.setVisibility(View.VISIBLE);
}
public void animate(final WebView view) {
final Animation anim = AnimationUtils.loadAnimation(getActivity(),
R.anim.slide_in_from_left);
view.startAnimation(anim);
}
@Override
public void onReceivedError( WebView view, int errorCode, String description, String failingUrl ) {
Toast.makeText(view.getContext(), "Authentication Error", Toast.LENGTH_LONG).show();
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie("yahooemail@yahoo.com", "yahoopass");
super.onReceivedError(view, errorCode, description, failingUrl);
}
@Override
public void onLoadResource( WebView view, String url ){
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onReceivedHttpAuthRequest( WebView view, final HttpAuthHandler handler, final String host, final String realm ){
handler.proceed("yahooemail@yahoo.com", "yahoopass");
}
}
1 ответ
http://developer.android.com/reference/android/webkit/WebView.html
loadUrl (строковый URL)
Загружает указанный URL.postUrl (строковый URL, байт [] postData)
Загружает URL с postData, используя метод "POST" в этот WebView.
Поэтому вместо использования:
String url = "https://www.yahoomail.com";
webview.loadUrl(url);
использовать:
String url = "http://example.com/somepage.php";
String postData = "postvar=value&postvar2=value2";
webView.postUrl(url, EncodingUtils.getBytes(postData, "base64"));
Вы можете извлечь переменные, необходимые для Yahoo, со страницы входа в систему.