Ich habe angefangen, eine App zu schreiben, die dem Benutzer ein HTML-Formular über ein WebView zur Verfügung stellt. Da das Formular nicht unter meiner Kontrolle ist, können die ausgefüllten Daten entweder als GET- oder als POST-Anfrage gesendet werden. Meine App wird benötigt, um die transportierten Formulardaten zu erfassen, dh um zu erhalten, was in die Formularfelder eingegeben wurde.ist es möglich, auf HTML-Formulardaten zuzugreifen, die über ein WebView POSTed sind?
Mit einem angemessenen Rückruf von WebViewClient wie onPageLoaded()
, ist es einfach, Formulardaten von einer GET-Anfrage zu erfassen. Ich kann jedoch keine geeignete Methode finden, um das Gleiche für POST-Daten zu ermöglichen, d. H. In der Lage zu sein, auf den HTTP POST-Nachrichtentext zuzugreifen, der die Formulardaten enthält. Fehle mir hier ein relevanter Callback oder gibt es einfach keine Möglichkeit, das angegebene Ziel mit der gegebenen API zu erreichen (selbst die neueste Stufe 8)?
Angenommen, es war nicht möglich, ich überlegte, Teile von android.webkit zu überschreiben und zu erweitern, um einen neuen Callback-Hook einzuführen, der den POST-Körper irgendwie passiert. Auf diese Weise könnte meine App mit einem angepassten Browser/WebViewClient ausgeliefert werden, der die gewünschte Funktion erfüllt. Allerdings konnte ich im Code keinen guten Startpunkt finden und würde mich über Hinweise in dieser Hinsicht freuen (falls der Ansatz überhaupt vielversprechend erscheint).
Vielen Dank im Voraus!
Eigentlich habe ich mich einen Weg gefunden haben: Es sollte möglich sein, einige JavaScript zu injizieren, die das parsen Formularfelder, wenn der Benutzer das Formular absendet. Die bereitgestellte Javascript-zu-Java-Schnittstelle sollte dann in der Lage sein, die gefüllten Daten zur weiteren Verarbeitung in den Java-Raum zurück zu übertragen. Will diesen Ansatz versuchen und Bericht erstatten. Natürlich sind weitere Rückmeldungen immer noch willkommen! –