Автозаполнение формы

gennc
Сообщения: 11
Зарегистрирован: 21 янв 2014, 16:46

Автозаполнение формы

Сообщение gennc » 21 янв 2014, 16:54

Всем привет, есть форма на странице,

Код: Выделить всё

<form name="forma1">
    <input type="text" name="login" size="20"
            maxlength="50" value="Логин">
    <input type="text" name="pass" size="20"
            maxlength="50" value="Пароль"> 
 Выбирите число от 1 до 3:
  <select name="language" size="1">
  <option selected value="1">1
  <option value="2">2
  <option value="3">3
  </select><br><br>
    <input type="button" name="button" value="Отправить">      
   </form>
Подскажите пожалуйста, как заставить Java код в eclipse, заполнить поля. Там где логин - Vasia, пароль - 111111 и выбрать число 2. В C# есть строчка webBrowser1.Document.GetElementById("Login").SetAttribute("value", "Vasia"); Но она не работает в eclipse

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Автозаполнение формы

Сообщение altwin » 22 янв 2014, 11:00

webBrowser1.Document.GetElementById("Login").SetAttribute("value", "Vasia");
к C# не имеет никакого отношения вообще. И что этот вопрос делает в форуе Android разработчиков ?

P.S. вы перепутали Java и JavaScript (код которого кстати тут привели).
Подскажите пожалуйста, как заставить Java код в eclipse, заполнить поля
при чем тут java и зачем оно вам?
Изображение

gennc
Сообщения: 11
Зарегистрирован: 21 янв 2014, 16:46

Re: Автозаполнение формы

Сообщение gennc » 22 янв 2014, 14:24

altwin - так а на чем пишется android?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Автозаполнение формы

Сообщение rezak90 » 22 янв 2014, 14:44

gennc, почитай про get и post запросы
R.id.team
Политика на форуме запрещена

gennc
Сообщения: 11
Зарегистрирован: 21 янв 2014, 16:46

Re: Автозаполнение формы

Сообщение gennc » 11 фев 2014, 21:19

Проблему я так и не решил(
Помогите пожалуйста. Перепробовал уже все что можно, но не хочет заполнять форму.
Вот на многих сайтах находил вот такой код(скинул весь код), и писали что работает, но у меня не хочет и не как не могу заставить его заполнять.

Код: Выделить всё

package com.example.Climail;

import java.util.ArrayList;
import java.util.List;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.webkit.*;

import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import android.webkit.WebSettings;

@SuppressLint("SetJavaScriptEnabled")
public class LoginActivity extends Activity {
	
	WebView webView;
	
	//@Override
	 protected void onCreate(Bundle savedInstanceState) {
	  super.onCreate(savedInstanceState);
	   setContentView(R.layout.weblogin);
	    
	    WebView WebView;
	    WebView = (WebView) findViewById(R.id.webView1);
	    WebView.setWebViewClient(new WebViewClient());
	    WebSettings settings = WebView.getSettings();
	    settings.setJavaScriptEnabled(true);
	    settings.setJavaScriptCanOpenWindowsAutomatically(true);
	    WebView.loadUrl("http://m.mail.ru/login/");
	    
	    //String uname = "cristian";
	    //String password = "777";
	    
	    WebView.loadUrl("javascript:document.getElementById('Login').value = '"+username+"';");
	    WebView.loadUrl("javascript:document.getElementById('Login').SetAttribute('value', 'cristian')");
	    WebView.loadUrl("javascript:Document.GetElementById('Password').SetAttribute('value', '777')");
	    
	    WebView.loadUrl("javascript:document.getElementById('Войти').click();");
	  } 
	}

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Автозаполнение формы

Сообщение Mikhail_dev » 11 фев 2014, 21:28

Хехех, не заполняется потому что падает мертвым грузом?

gennc
Сообщения: 11
Зарегистрирован: 21 янв 2014, 16:46

Re: Автозаполнение формы

Сообщение gennc » 11 фев 2014, 21:31

m090050 - неа, загружается м.маил и больше ничего не происходит((
Приложение не падает, если я вас правильно понял.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Автозаполнение формы

Сообщение Mikhail_dev » 11 фев 2014, 22:55

Да, правильно. Просто идет обращение к интернету с главного (UI) потока, а это запрещено Андроидом. До 3-го андроида это работает, а выше третьего уже не будет.

gennc
Сообщения: 11
Зарегистрирован: 21 янв 2014, 16:46

Re: Автозаполнение формы

Сообщение gennc » 11 фев 2014, 23:44

m090050 - ну это совет на будущее, записал его, спасибо.
Но мне бы сейчас с этим авто заполнением бы разобраться(

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Автозаполнение формы

Сообщение Foenix » 12 фев 2014, 06:47

gennc писал(а):m090050 - ну это совет на будущее, записал его, спасибо.
Но мне бы сейчас с этим авто заполнением бы разобраться(
значит, и "будущего" у этого кода нет.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

gennc
Сообщения: 11
Зарегистрирован: 21 янв 2014, 16:46

Re: Автозаполнение формы

Сообщение gennc » 12 фев 2014, 10:49

Foenix - Добрый день. Ну почему сразу такие высказывания, m090050 написал что до 3-го андройда, у меня сейчас стоит версия 2.3.3 на эмуляторе, мне и этой версии достаточно или вы предлагаете учить андройд сразу с 4.4?)

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Автозаполнение формы

Сообщение Mikhail_dev » 12 фев 2014, 10:59

Потому что на 2.3.3 свет не замкнулся. Посмотрите гугловскую статистику по версиям, ( http://developer.android.com/about/dash ... sdroid.net ), вы таким кодом отсеяли 80 процентов рынка.

gennc
Сообщения: 11
Зарегистрирован: 21 янв 2014, 16:46

Re: Автозаполнение формы

Сообщение gennc » 12 фев 2014, 11:16

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

На счет UI, нашел http://startandroid.ru/ru/uroki/vse-uro ... otoke.html, то?

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Автозаполнение формы

Сообщение altwin » 12 фев 2014, 11:22

Если вы создаете приложение работающее как web app, используйте jQuery: http://jqueryui.com/autocomplete/ (полезно почитать: http://mobile.smashingmagazine.com/2011 ... -steroids/ ), так же можно поступить если вы просто используете WebView в activity работающей с формой, просто разрешив js и подключив плагин.
Если же это "нативная" форма, просто вместо EditText field используйте AutoCompleteTextView

P.S. я до сих пор не понял вопроса, что за автозаполнение в Android вам нужно? Можете привести пример или описать шаги работы? Это auto complete или же просто установка значения по умолчанию, а может вы собираетесь заполнять форму исходя из данных о пользователе и его действиях?
Изображение

gennc
Сообщения: 11
Зарегистрирован: 21 янв 2014, 16:46

Re: Автозаполнение формы

Сообщение gennc » 12 фев 2014, 11:33

altwin - Если так подумать получается что это клиент. В коде программно я вписываю например логин и пароль

Код: Выделить всё

String uname = "cristian"; 
String password = "777"; 
И когда я нажимаю на программу, она запускается, открывает страницу http://m.mail.ru/login/, водит сама в поле Имя - cristian, в поле Пароль - 777 и нажимает кнопку Войти. При этом я ничего не делаю, ничего не ввожу, все делается автоматически. Я только запустил саму программу.

Разрешение на js, я даю ей settings.setJavaScriptEnabled(true);

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Автозаполнение формы

Сообщение altwin » 12 фев 2014, 11:36

gennc писал(а): На счет UI, нашел http://startandroid.ru/ru/uroki/vse-uro ... otoke.html, то?
А я могу true c false в php поменять и на 0 делить используя 7 языков программирования и че? То, что это можно сделать, не значит, что это делать нужно... То, что есть способы выполнить код в UI потоке не значит, что такой код поможет вам найти работу...
Изображение

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Автозаполнение формы

Сообщение altwin » 12 фев 2014, 11:38

gennc писал(а):altwin - Если так подумать получается что это клиент. В коде программно я вписываю например логин и пароль

Код: Выделить всё

String uname = "cristian"; 
String password = "777"; 
И когда я нажимаю на программу, она запускается, открывает страницу http://m.mail.ru/login/, водит сама в поле Имя - cristian, в поле Пароль - 777 и нажимает кнопку Войти. При этом я ничего не делаю, ничего не ввожу, все делается автоматически. Я только запустил саму программу.

Разрешение на js, я даю ей settings.setJavaScriptEnabled(true);
вам не автозаполнение нужно, оно тут вообще не тем боком стало...
Первое - не делайте так никогда. Вы понимаете, что сохраняя пароли в коде вы убиваете безопастность вообще в 0.
Но даже если вы захотели... из каких то переменнных окружения вытащили значения ... вам нужно просто отправить логин и пароль серверу. Но опять же зачем тогда вообще авторизация?
Изображение

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Автозаполнение формы

Сообщение altwin » 12 фев 2014, 11:40

вот библиотека, для отправки асинхронных запросов, вы можете добавить любой параметр к запросу(в вашем случае логин и пароль), все.. больше ничего не нужно: http://loopj.com/android-async-http/ Там даже аутентификация уже поддерживается, т.е.:
[syntax=java5]
AsyncHttpClient client = new AsyncHttpClient();
client.setBasicAuth("username","password/token");
client.get("http://example.com");
[/syntax]
Изображение

gennc
Сообщения: 11
Зарегистрирован: 21 янв 2014, 16:46

Re: Автозаполнение формы

Сообщение gennc » 12 фев 2014, 11:45

altwin - нет, мне нужно именно как я описал, отправлять запрос на прямую мн не нужно.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Автозаполнение формы

Сообщение altwin » 12 фев 2014, 11:51

gennc писал(а):altwin - нет, мне нужно именно как я описал, отправлять запрос на прямую мн не нужно.
чем это отличается от того, что вы описываете? Вам нужно в код примера который я вам привел добавить вместо "username","password/token" свои String uname = "cristian"; и String password = "777";, в чем отличия то? Если вы хотите чтобы это можно было отправлят из формы используйте АutoCompleteTextView значения из которой присваивайте своеим переменным. Да что угодно можно делать, что значит запрос на прямую не нужно? По сути этот код отправляет уже защищенный запрос на http://example.com?username=user_name&u ... =user_pass других варриантов нет. То же самое вы можете сделать в doInBackground AsyncTask -а просто выполнив сам запрос, но опять таки вы не защищены от декомпиляции или просто перехвата пакета.
Изображение

Ответить