Автоматично влизане в Gmail чрез WebView?

Бих искал да използвам потребителското име и паролата на Gmail за автоматично влизане в Gmail в WebView. Има ли съществуващ код как да направя това, тъй като имам проблеми с него (кои скрити полета трябва да бъдат публикувани, получаване/повторно инжектиране на бисквитката).

Опитах се просто да попълня полетата за потребителско име/парола с помощта на JavaScript, което работи, но при изпращане на формуляра за вход (използвайки отново JavaScript), WebView пита потребителите дали той/тя иска паролата да бъде запазена, което аз трябва да се избягва (за да стане наистина автоматично).

Благодаря,
Ник


person Nick    schedule 05.07.2012    source източник
comment
Можете ли да кажете как сте попълнили полетата за потребителско име и парола с помощта на javascript.   -  person user1213202    schedule 21.03.2013
comment
След като формулярът за влизане приключи със зареждането в WebView, вие просто използвате WebView.loadUrl("javascript: ...;");, за да извършите javascript действия върху зареденото съдържание. Например: mWebView.loadUrl("javascript:yourloginform.username.value=\"" + mUsername + "\";"); mWebView.loadUrl("javascript:yourloginform.username.value=\"" + mPassword + "\";"); mWebView.loadUrl("javascript:yourloginform.signIn.click();");   -  person Nick    schedule 21.03.2013
comment
тук yourloginform означава какво. Можете ли да кажете ясно как да направите това и javascript код за това. искам да заредя уеб страница за вход в gmail с попълнени идентификационни данни.   -  person user1213202    schedule 21.03.2013
comment
Моля, създайте нов въпрос за вашия проблем и го свържете тук.   -  person Nick    schedule 21.03.2013
comment

Как да консумирате copy paste?

не можеш DocumentEvent се генерира СЛЕД като документът вече е актуализиран.

Ако просто искате да деактивирате функцията за копиране/поставяне на текстово поле, тогава можете да премахнете обвързването на клавишите:

KeyStroke copy = KeyStroke.getKeyStroke("control C");
textField.getInputMap().put(copy, "none");
  -  person user1213202    schedule 22.03.2013


Отговори (1)


WebSettings mWebSettings = mWebView.getSettings();
mWebSettings.setSavePassword(false);
mWebSettings.setSaveFormData(false)

Опитайте това, но не съм сигурен дали и двата метода setSave[...] са необходими.

Но изчакайте: Ако приемем, че просто попълвате формуляра за вход с JavaScript, съхранявате ли паролата в обикновен текст? Ако е така, не трябва да правите това, не само поради проблеми със сигурността. Предполагам, че питате потребителя за неговата/нейната парола чрез диалогов прозорец. Искането на паролата изглежда подозрително за много потребители.

Вместо това предлагам да научите как да запазвате и възстановявате бисквитки.

person Christian Brüggemann    schedule 05.07.2012
comment
Страхотно, работи :)! Благодаря ти! Мислех, че е обратното (имах setSavePassword(true) и setSaveFormData(true), които мислех, че тихо ще запазят данните от формуляра, но всъщност има повече смисъл по твоя начин! По отношение на проблема със запазването на потребителското име и паролата: Вие сте напълно прав, предпочитам да не го правя, имах друг въпрос (stackoverflow.com/questions/ 11335761) за това как да се избегне това, но не знам как би работило решение за запазване/възстановяване на бисквитки :-/... - person Nick; 06.07.2012
comment
(ако щях да съхраня потребителското име/паролата, очевидно бих го шифровала, но това не е решение, към което се стремя)... - person Nick; 06.07.2012