Italian Interazione profonda con pagine web

AlpVir

Well-Known Member
Licensed User
Longtime User
Pensate che sia possibile creare un'app con B4 avente un solo pulsante, premuto il quale:
1) l'app si connette ad un sito che richiede username e password per accedere; ovviamente conosco questi parametri;
2) simula un click su un certo link;
3) aziona un combo box (lo spinner in B4a) per scegliere una delle 10 voci;
4) simula un click su un altro link ed avviene magicamente il download di un file PDF.
Quasi sicuramente si deve utizzare HttpUtils ma non mi è chiaro se e come cliccare un link e soprattutto scegliere una voce di un combo box.
Nel buon vecchio VB6 era possibile fare tutto ciò con l'istruzione InKey$ ma qui ????
Grazie per l'attenzione.
 

sirjo66

Well-Known Member
Licensed User
Longtime User
In VB6 si poteva fare (in modo brutale) usando il SendKeys, oppure, in modo più elegante, usando l'oggetto WebBrowser che tramite interfaccia DOM esponeva tutti gli oggetti presenti nella pagina HTML direttamente a VB6 permettendo così di interagire liberamente.

Con B4A credo che questo non sia possibile, io ci ho provato più volte ma purtroppo non ci sono mai riuscito, dato che l'oggetto WebView non ha una interfaccia per i suoi contenuti.

L'unico modo per far interagire la pagina HTML presente nel tuo oggetto WebView con il tuo codice Android è quello di inserire nel codice HTML del codice JavaScript che richiama appunto una tua procedura.

Sergio
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Immaginavo una risposta del genere ed avevo anche visto il suggerimento di inserire codice Javascript. Ma non mi è chiara la cosa. Io visualizzo una pagina HTML creata da altri e su cui non ho alcun controllo. Come fare a inserire codice Javascript se non è una pagina mia ? Probabilmente è possibile ma al momento non ho sperimentato la cosa.
Eppoi: siamo sicuri che l'unico modo è utilizzare l'oggetto WebView ?
Esiste anche un oggetto WebViewExtras creato da warwound che forse può essere più efficacemente utiizzato.
 
Top