Cum - să apăsați pe butonul - formular HTML a codului - discuția și soluționarea problemelor - Forum

Există un formular HTML, constând dintr-o caseta de text și un buton. Făcând clic pe butonul toate de prelucrare a datelor, introduse în caseta de text, și să se întoarcă rezultatele în tabel, executate pe aceeași pagină.
Sarcina - pentru a intra în program în valoarea textbox programatică clic pe un buton pentru a analiza rezultatul din tabelul de pe aceeași pagină în șirul sau matrice în Prog.
Cu parsing „statică“ html înțeles. Întrebarea este, este posibil să se umple programatic caseta de text, apăsați butonul, și cum pentru a analiza HTML care ca rezultat este obținut după JavaScript a lucrat, deoarece link-ul original este HTML original pe care este apăsat butonul și este introdus nu există date.

Parsing este realizată folosind JSOUP cod de bibliotecă poate avea ca rezultat.
În momentul de față, problema principală 2 - o interacțiune de software cu comenzile și modul în care pentru a ridica HTML, atunci care este obținut după intrarea și făcând clic ..

Dacă există o soluție mai ușoară Mus novichog)

„Deciziile sunt mai ușor de“ nr.
1) Dacă doriți să lipiți datele și apăsați pe butonul - scrie scriptul JS necesar și injectați-l în pagină după citirea WebView
2) HTTPClient'om citiți pagina și Parsing-l, în cazul în echilibru după 8 VizualizareWeb pot fi stocate în arhiva web a rezultatului și de a lucra cu el

Multe mulțumiri pentru răspunsul.
Despre produsele de injectare se pare a fi realizat, de exemplu, Am prsoto hrănesc script-ul WebView ca element de legătură la pagina deschisă, care trebuie să analizeze și ar trebui să funcționeze. Voi încerca, vă mulțumesc.
În ceea ce privește al doilea nu înțeleg. Așa cum am înțeles că este necesar să se analizeze pagina rezultată, acesta va fi în WebView după scriptul executat sau manual, prin apăsarea unui buton. Cum se ajunge acolo? Versiunea aplicației nu are valorile, dacă este necesar - va fi al optulea, aceasta linie în manifest și schimba regulile scurt, poate fi un exemplu de plasare a conținutului WebView curent în orice vebarhiv așa cum ai spus, iar unele literatura de specialitate pentru a lucra cu el? Internetul nu a găsit exemple de astfel de lucruri ..
Și totuși, dacă biblioteca am Pars JSOUP, este ușor și convenabil, într-un fel mă pot hrăni pagina ei de la vebarhiva sau cu totul fără vebarhiv corespunzătoare doar pagina WebView actuală, otparsit cu ea? Asigurați-vă că pentru a utiliza httpclient?

și de a afla dacă există o cerere este generată prin apăsarea butonului și de a construi o singur? Pare mai ușor de nicăieri.

Da, ai intercepta noua adresă URL și rulați asinktask pentru conținut cu slash-uri cu un client.
Cu vebvyu veți obține o modalitate simplă are conținutul descărcat

și de a afla dacă există o cerere este generată prin apăsarea butonului și de a construi o singur? Pare mai ușor de nicăieri.

Acest lucru am dat seama deja. Eu definesc doar atunci când sarcina inițială pagină și apoi se oprește wv.loadUrl ( „script java:. Document.getElementById () Valoarea«Nume»=«3»“);
și funcția butonului care fac clic, funcționează. Ca. Aici problema nu este prezent =)
Ca rezultat, am obține tabelul de care aveți nevoie pentru a analiza în elementul vebvyu.

Da, ai intercepta noua adresă URL și rulați asinktask pentru conținut cu slash-uri cu un client.

1) Cheto Nu înțeleg cum script-ul ia datele pentru tabel - aveți ce Ajax pagina? - în cazul în care acest lucru - să fie ales pentru tine - nimeni nu va ajuta prea mult beton și subtilități.

Made # 33; O modalitate destul de simplu pentru a obține codul sursă al paginii, care este în prezent în WebView în format String si analiza șirul JSOUPom. Acest vinuri.
Pagina - un formular, care este format Inscrierea JavaScript. În special, singurul lucru pe care aveți nevoie pentru a analiza JavaScript este format și plasat în tabel.

În primul rând, un pikchalistener, care verifică dacă imaginea descărcată de pe pagina (ca imaginile sunt încărcate mai mult decât textul - este o garanție de 100% că pagina este complet încărcată și poate injecta script-uri)
wv.setPictureListener (nou MyPictureListener ();

Eveniment pagină încărcată în MyPictureListener clasă:

public void onNewPicture (vizualizare VizualizareWeb, ARG1 imagine) în cazul în care (i == 0)
wv.loadUrl ( "script java: document.getElementById ( 'Nume') = valoarea." + nom_graf + ";");
if (i == 1)
wv.loadUrl ( "script java: PoluchitSotrudnikov ();");
if (i == 3)
wv.loadUrl ( „script java: window.HTMLOUT.processHTML ( ''+ Document.getElementsByTagName (' html ') [0] .innerHTML +'„);„);

i ++;
//Toast.makeText (getApplicationContext (), wv.getUrl (), Toast.LENGTH_SHORT) .show ();

În cazul în care pentru a injecta script-uri și unul dintre care este retragerea din care rezultă codul paginii HTML, care mai târziu suferă o parsare. pentru că Total Acasă reîncărcat de 4 ori pentru a urmări manual numărul de serie al unui reboot și să se asigure că script-uri injecteaza exact 1 dată când pagina este reîmprospătată, mai degrabă decât 100,500 ori atunci când a declanșat evenimentul de reîncărcare atunci când butonul de program este apăsat, de exemplu, sau prin introducerea de informații în caseta de text sau un tabel de desen sau Th Mai mult. De data asta nu-mi place. Urăsc constante, dar xs cum altfel să-l prind atunci când unele dintre script-ul se face și ceea ce nu este în măsură la pagina kaokm este în acest moment.

@SuppressWarnings ( "nefolosit")
public void processHTML (String html)
// procesa HTML după cum este necesar de aplicație
Integer [] alo = new Integer [1000];
int kol_tabl = 0;

Document doc = Jsoup.parse (html);


Elemente link-uri = doc.select ( "td");

pentru (link Element. legături)

încerca
alo [kol_tabl] = Integer.parseInt (link.text ());
kol_tabl ++;
>
catch (Exception e)
Log.v ( "notINT", link.text ());
// da o eroare sau o valoare implicită sau ceva.
>

>
Ca urmare, obiectivul său atins, chiar dacă în cârje și într-un singur loc, dar a ajuns la =)))
Pierderile mi-a lăsat cu 2 întrebări.
În primul rând - trebuie să ne întoarcem cumva totul pentru că în mod automat să-l după parsing o pagină pentru a rula următoarea pagină din aceeași WebView.
Aici presupunem o readWebView function () pe care am expediat link-ul pentru a analiza și cere pentru interfața ascultător Picchu și javascript, în general, corpul în sine, dacă eu numesc rândul său, această funcție cu diferite argumente de tip
readWebView (0);
readWebView (1);
readWebView (2);
Această pagină se va deschide și va analiza doar 2, 0 și 1 nu sunt chiar deschise. ordinea de cod nu clar și determină că a lucrat alternativ yahz.
Al doilea trebuie să fie undeva în acest vebvyu branci de fundal sau încărcați unele vopsea peste ea și yahz dacă ar funcționa acest element în cazul în care nu este punctul central al cererii, în cazul în care nu este posibil setcontentview și o altă întorsătură, de exemplu.

Poate că ideile mele vor fi de folos cuiva hehe, deoarece despre vebvyu de informații pe internet într-un fel să fie Pobol decât cu privire la următoarele elemente HTTPSlient Het # 092; Post, etc. sau că eu sunt curba nu pot fi găsite în Google descriere sane pentru nubasey și o astfel de pervertită vebvyu găsi.
Răspunsul la întrebarea mea 2 va fi recunoscător

Vino și de a face destul de distractiv - în cazul în care este serios despre sarcina în fundal - un indiciu „Visible.GONE“. Și în ceea ce privește prima întrebare, aveți o pagină web în vebvyu au 3 state - începutul descărcării, sfârșitul download si upload de eroare, le puteți prinde prin WebViewClient, cred că va fi mai ușor decât MyPictureListener.

În timp ce eu simpatizez personal cu voi scrie un înveliș pe pagina altcuiva este ceva ;-)

Vino și de a face destul de distractiv - în cazul în care este serios despre sarcina în fundal - un indiciu „Visible.GONE“. Și în ceea ce privește prima întrebare, aveți o pagină web în vebvyu au 3 state - începutul descărcării, sfârșitul download si upload de eroare, le puteți prinde prin WebViewClient, cred că va fi mai ușor decât MyPictureListener.

Asigurați-distractiv tot ce vrei, trebuie doar să răspundă corect la întrebări. Deși cunoașterea limbii engleze la un nivel adecvat, uneori, nu știu ce mod de a săpa și o cerere către Google pentru a vă oferi aici și ajutând. =)
Se încarcă în fundal puse în aplicare, dar că nu este de lucru Visible.GONE locul Visible.INVISIBLE poyuzat, dar mulțumesc oricum pentru o lovitură în direcția cea bună. În ceea ce privește cele 3 state vebvyu, știu că am făcut-o și a încercat inițial, dar eu nu lucrez, nu sunt livrate script-ul, bănuiesc că script-ul începe să fie încărcat înainte de pagina este complet încărcată. Am folosit OnPageFinished (), aici o astfel de aici:
wv.setWebViewClient (nou WebViewClient ()

public void onPageFinished (vizualizare VizualizareWeb, String URL) wv.loadUrl ( „și apoi unele script„);
>
>);
Singurii cred că va fi la fel ca și cu Picchu - atunci când am rula script-ul, chiar Tsiferki în textbox zanoshu funcționează încă eveniment onPageFinished și va avea aceeași constantă de a face lucruri pe care le-am dat mai sus, pentru a înțelege într-un fel când funcționează eveniment și pentru a asigura script-ul edinokratny Inject, în caz contrar acesta va fi 100,500 ori același script este executat, este foarte urât. = (

Cu toate acestea, am alege httpclient treptat, va trebui să se gândească la fel de a modifica pe măsură ce spui, dacă vei avea grijă desigur. Vor fi întrebări - cere)

articole similare