2013-03-26 3 views
0

Я довольно новичок в разработке Android. Одна из моих кнопок в приложении отправляет пользователя на веб-страницу, где пользователь может войти в определенную систему.Trigger javascript from android app

На веб-странице есть текстовые поля для имени пользователя и пароля. Как только вы нажмете на кнопку «Вход» (на веб-странице), она запускает javascript для входа в систему. Код срабатывающие является: onclick="updateAction('TourAccLogin');document.main_form.submit();

Форма веб-страница для входа в систему:

The webpage form to login

Мой вопрос: У меня есть имя пользователя и пароль в приложении, я хочу, если я могу знать как-то манипулировать этой формой, знак автоматически без вмешательства пользователя? Смысл, я буду заполнять имя пользователя и пароль, я «нажимаю» кнопку входа. Таким образом, пользователь сразу же будет перенаправлен в систему без необходимости вводить имя пользователя и пароль.

+0

Это то, что вы пытаетесь сделать юридическим/моральным? – lelloman

+0

, конечно, это тоже моя собственная система. Я просто пытаюсь сохранить пользователя шаг входа в систему снова (так как пользователь вошел в приложение уже с тем же именем и паролем) – Mike

+0

- это веб-страница, загруженная в веб-просмотр? – lelloman

ответ

1

Этот метод работал для меня. В моем случае я загружаю скрытое поле с именем mElementId со строковым значением, хранящимся в someData, а затем запускает его событие onchange, которое не запускается самостоятельно. Я включил его, чтобы показать, как вы можете складывать javascript-команды в одной инъекции. Я уверен, что вариант этого будет работать для вас.

Я также избежал любых одинарных кавычек, чтобы предотвратить ошибку javascript. Возможно, вам придется избегать любых других специальных символов, включая точку с запятой. В моем случае это не было необходимо, потому что данные уже были очищены.

// Copy data to element 
mWebView.loadUrl("javascript:(function() { " + 
     "document.getElementById('" + mElementId + "').value = '" + 
     someData.replace("'", "\'") + "'; " + 
     "document.getElementById('" + mElementId + "').onchange();" + 
     "})()"); 
0

Вы говорите, что это ваша система, поэтому вы знаете, что работает за кулисами, чтобы обработать логин. Я не издеваюсь, просто проверяю. Я предполагаю, что вы создали какое-то представление, в котором у вас есть имя пользователя/пароль до этого. Я спрашиваю об этом, потому что вы спрашиваете, есть ли способ манипулирования формой ...

При этом отправьте данные, как обычно, в скрипт, обрабатывающий логин. Если вы используете GET, то http://some.domain.com/somescript?username=mumble&password=foo. Если вы используете POST, создайте post args и отправьте его. В любом случае, вы можете обрабатывать результаты в веб-просмотре, что позволит вашему существующему интерфейсу подобрать то, что ему нужно.

Конечно, если вы используете хэш для пароля или заправляете пароль, вам нужно будет сделать все, что было до его отправки.