Ho iniziato a scrivere un'app che fornisce all'utente un modulo HTML tramite una WebView. Poiché il modulo non è sotto il mio controllo, i dati inseriti possono essere inviati come richiesta GET o POST. La mia app è richiesta per catturare i dati del modulo trasportato, vale a dire, ottenere una sospensione su ciò che è stato inserito nei campi del modulo.è possibile accedere ai dati dei moduli HTML inviati tramite WebView?
Utilizzando un callback adeguato da WebViewClient come onPageLoaded()
, è facile acquisire i dati dei moduli da una richiesta GET. Tuttavia, non riesco a trovare alcun metodo appropriato per consentire lo stesso per i dati POST, cioè, essere in grado di accedere al corpo del messaggio POST HTTP contenente i dati del modulo. Mi manca una richiamata rilevante qui o semplicemente non c'è modo di realizzare l'obiettivo specificato con l'API fornita (anche l'ultimo livello 8)?
Supponendo che non fosse possibile, ho considerato l'override e l'estensione di parti di android.webkit per introdurre un nuovo hook di richiamata che è passato in qualche modo al corpo POST. In questo modo, la mia app potrebbe essere fornita con un browser personalizzato/WebView Client che soddisfa la funzionalità desiderata. Tuttavia, non sono riuscito a trovare alcun buon punto di partenza nel codice e sarei lieto di avere qualche suggerimento in merito (nel caso in cui l'approccio sembra affatto promettente).
Grazie in anticipo!
In realtà, forse ho trovato me stesso modo: Dovrebbe essere possibile iniettare un po 'di JavaScript che analizza il forma i campi quando l'utente invia il modulo. L'interfaccia Javascript-to-Java fornita dovrebbe quindi essere in grado di trasferire nuovamente i dati compilati nello spazio Java per un'ulteriore elaborazione. Proverà questo approccio e riferirà. Naturalmente, ogni ulteriore feedback è ancora benvenuto! –