Автоматически входить в Gmail с помощью WebView?

Я хочу использовать имя пользователя и пароль пользователя Gmail для автоматического входа в Gmail внутри WebView. Есть ли какой-либо существующий код, как это сделать, так как у меня с ним проблемы (какие скрытые поля необходимо опубликовать, получить/повторно ввести файл cookie).

Я попытался просто заполнить поля имени пользователя/пароля с помощью 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
я создал вопрос здесь с именем пользователя и паролем, используя webview"> stackoverflow.com/questions/15562497/   -  person user1213202    schedule 22.03.2013


Ответы (1)


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

Попробуйте это, но не уверен, что оба метода setSave[...] необходимы.

Но подождите: если вы действительно просто заполняете форму входа с помощью JavaScript, вы сохраняете пароль в виде простого текста? Если это так, вам не следует этого делать не только из-за проблем с безопасностью. Я предполагаю, что вы запрашиваете у пользователя его/ее пароль через диалоговое окно. Запрос пароля многим пользователям кажется подозрительным.

Вместо этого я предлагаю научиться сохранять и восстанавливать файлы cookie.

person Christian Brüggemann    schedule 05.07.2012
comment
Круто, это работает :)! Спасибо! Я думал, что все наоборот (у меня были setSavePassword(true) и setSaveFormData(true), которые, как я думал, молча сохранят данные формы, но на самом деле это имеет больше смысла! Что касается проблемы сохранения имени пользователя и пароля: Вы абсолютно правы, я бы предпочел не этого делать, у меня был другой вопрос (stackoverflow.com/questions/ 11335761) о том, как этого избежать, но не знаю, как будет работать решение для сохранения/восстановления файлов cookie :-/... - person Nick; 06.07.2012
comment
(если бы я сохранял имя пользователя/пароль, я бы, очевидно, зашифровал его, но это не то решение, к которому я стремлюсь)... - person Nick; 06.07.2012